Just a minor extension of choroba's observations (and mentioning, not just BTW, that the quoting here is for the windows box which was readily at hand):
C:\>perl -E "sub doit {for my $passed(@_) { say 'passed is: '. $passed +;}}my @input=@ARGV; for my $input (@input) {say $input;} doit(@input) +;" "one" "two" "three" one two three passed is: one passed is: two passed is: three C:\>
Alternately, you could use shift inside the loop in the sub. And, nota bene, that if your CLI arguements are enclosed in a single set of (appropriate) quotes, @ARGV will have them all as a single element, in which case, you need to (for one example) split @ARGV and push its arguments into whatever array you're going to use to pass to the sub.
C:\>perl -E "sub doit {for my $passed(@_) { say 'passed is: '. $passed +;}} my @input = @ARGV; for my $input (@input) {say $input;} doit(@inp +ut);" "one two three" # NOTE QUOTING VARIANCE! one two three passed is: one two three C:\>
In reply to Re: sending data thru a sub routine
by ww
in thread sending data thru a sub routine
by james28909
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |