Is it unsafe to return a pointer to local data?

No, Perl's garbage collection system takes care of this.

    sub makeone {
	my @a = ( 1 .. 10 );
	return \@a;
    }
    for $i ( 1 .. 10 ) {
        push @many, makeone();
    }
    print $many[4][5], "\n";
    print "@many\n";

Back to perlfaq3