http://qs321.pair.com?node_id=1035803

virudinesh has asked for the wisdom of the Perl Monks concerning the following question:

how to print out side of function nor for

my @message; my $input = 10; for my $index ( 0..$input-1 ) { $message[$index][0] = "element 0"; $message[$index][1] = 42; } print "The second array has ", scalar( @{ $message[1] } ), " elements\ +n"; print "They are:\n"; for my $index ( 0..$#{ $message[1] } ) { print "\t", $message[$index][1], "\t", } print "\t", $message[$index][1], "\t", $message[$index][0] ,"\n";

i am using this coding in my function , its only print inside and outside

how to print out side of function

Replies are listed 'Best First'.
Re: how to print out side of for loop?
by marto (Archbishop) on May 29, 2013 at 10:10 UTC
Re: how to print out side of for loop?
by Anneq (Vicar) on May 29, 2013 at 10:46 UTC

    Declare:

     $my index;

    at the beginning of your script.

    my $index; my @message; my $input = 10; for my ( 0..$input-1 ) { $message[$_][0] = "element 0"; $message[$_][1] = 42; } print "The second array has ", scalar( @{ $message[1] } ), " elements\ +n"; print "They are:\n"; for ( 0..$#{ $message[1] } ) { print "\t", $message[$_][1], "\t", } print "\t", $message[1], "\t", $message[0] ,"\n";

    $_ is a special variable that acts as your $index would if you omit it. Google for perl special variable $_ examples for more info.

    marto, the responses in his previous post were excellent but VERY technical. Unless you are familiar with perl and programming lingo, they may be difficult to understand.

    Anne

      "marto, the responses in his previous post were excellent but VERY technical. Unless you are familiar with perl and programming lingo, they may be difficult to understand."

      They specifically asked how to print without using a for loop. The responses in the previous thread show examples of doing this, and an explanation is provided. Your code (which uses a for loop to print) does not even compile:

      Missing $ on loop variable at derp.pl line 6.

      Fixing this problem your code produces:

      The second array has 2 elements They are: 42 42 ARRAY(0x71b668) ARRAY(0x88cda0 +)

      Are you sure this is what you intended to show them?

      A reply falls below the community's threshold of quality. You may see it by logging in.