#!/usr/bin/perl -- use strict; use warnings; use Data::Dump qw/ dd /; Main( @ARGV ); exit( 0 ); sub Main { dd( -argv, \@ARGV ); for my $ar ( @ARGV ){ Sky( $ar ); } Sky(6); } sub Sky { my( $ra ) = @_; dd( -ra, $ra ); dd( -args, \@_ ); } __END__ $ perl sky ("-argv", []) ("-ra", 6) ("-args", [6]) $ perl sky a b c ("-argv", ["a", "b", "c"]) ("-ra", "a") ("-args", ["a"]) ("-ra", "b") ("-args", ["b"]) ("-ra", "c") ("-args", ["c"]) ("-ra", 6) ("-args", [6])