tags:

views:

81

answers:

2

How do I pass a variable into a URL in a Perl script? I am trying to pass the variables in an array to url. For some reason it is not working. I am not sure what I am doing wrong. The code roughly looks like this:

@coins = qw(Quarter Dime Nickel);

foreach (@coins) {
  my $req = HTTP::Request->new(POST =>'https://url/$coins.com');
 } 

This does not work as $coins does not switch to Quarter,Dime,Nickel respectively.

What am I doing wrong?

+1  A: 

Use

'https://url/' . $_  . '.com'

Instead of your

'https://url/$coins.com'
chrisaycock
+6  A: 

First, variables do not interpolate in single quoted strings:

my $req = HTTP::Request->new(POST => "https://url/$coins.com");

Second, there is no variable $coins defined anywhere:

foreach my $coin (@coins) {
  my $req = HTTP::Request->new(POST => "https://url/$coin.com");
 }

Also, make sure to use strict and warnings.

You should also invest some time into learning Perl properly.

Sinan Ünür
Also, name the scalar value `$coin`, not `$coins`.
mscha
Or without having a loop variable, you may use `$coin[n]` or `$_` in place of `$coin`
vol7ron
Seriously, why the downvote?
Sinan Ünür
Thanks for the help everyone. I got what I wanted working
moorecats