#!/usr/bin/perl -w use strict; sub rien2rien (@) { my @other = shift; for (my $i = 0; $i < @other; $i++) { my $a = $other[$i]{'first'}; my $b = $other[$i]{'second'}; print "in other sub:\t$a\t$b\n"; } } sub rien () { my $i = 0; my $file ="somefile.html"; my $regexp = "(.*)something(.*)"; open(FH, "<$file"); my @rrayOfHash; (my @data) = split(/
/, ); foreach my $tuff (@data) { if ($tuff =~ /$regexp/) { $rrayOfHash[$i]{'first'} = $1; $rrayOfHash[$i]{'second'} =$2; $i++; } } for ($i = 0 ;$i <@data; $i++) { my $a = $rrayOfHash[$i]{'first'}; my $b = $rrayOfHash[$i]{'second'}; print "in sub: \t$a\t$b\n"; } return @rrayOfHash; } my @ut = &rien(); for (my $i = 0; $i < @ut; $i++) { my $a = $ut[$i]{'first'}; my $b = $ut[$i]{'second'}; print "in main:\t$a\t$b\n"; } &rien2rien(@ut); #### in sub: bla bleu in sub: bli blo in main: bla bleu in main: bli blo in other sub: bla bleu