in reply to Use command line argument in script

To your first question: we can't be sure the number of days is the SECOND CLI argument (which is what you're extracting in what you've shown -- $ARGV[1]); if the first CLI argument is what you want to feed to $days, then use $ARGV[0].

Here are two examples without the overhead of module loading:

#!/usr/bin/perl use 5.018; use warnings; # 1110785 my $days; if (@ARGV) { $days = $ARGV[0]; say $days; }else{ say "n\t Usage: 1110785.pl n \n"; } deleteData($days); sub deleteData { $days = shift (@_); say "days in sub: $days"; } say "back in main."; =head EXECUTION C:\>D:\_Perl_\PMonks\1110785.pl 3 3 days in sub: 3 back in main. =cut

or (some would say better style):

# ... # 1110785a my $days; sub deleteData { if (@ARGV) { $days = $ARGV[0]; say $days; }else{ say "n\t Usage: 1110785.pl n \n"; } $days = shift (@ARGV); say "days in sub: $days"; # ... } deleteData; say "back in main."; =head EXECUTION C:\>D:\_Perl_\PMonks\1110785a.pl 8 8 days in sub: 8 back in main. =cut

As to the your second question, why not 'try it to see?'

Replies are listed 'Best First'.
Re^2: Use command line argument in script
by homer4all (Acolyte) on Dec 19, 2014 at 16:30 UTC
    Thank you for the syntax and explanation but somehow I'm not even able to display value for $days... could somebody please help.

      Please read the preceding response -- re $ARGV[n] -- and if that's not the issue, show us more of what you're doing because your problem statement is ambiguous.

        Sorry for not mentioning this earlier, but I have updated original code and what syntax I'm trying.