in reply to reference , advantages?

In new_date_append(), you are assigning a value to $monster_date, which is an undeclared variable, as far as I can see. Why aren't you getting an error message about that? That assigned value uses a global variable named $passed_new-date, which is not passed at all. The new value then becomes the return value of the routine.

$fref is assigned a reference to the subroutine, which might then be invoked as $fref->(); $$fref is meaningless and should generate an error.

As Occam said: Entia non sunt multiplicanda praeter necessitatem.

Replies are listed 'Best First'.
Re^2: reference , advantages?
by Sandy (Curate) on Jun 30, 2011 at 18:00 UTC
    Actually, if you assume that the <snip> has the proper declarations, the $fref is a reference to the returned string from the function and $$fref is the string.

    Cleaned code

    #!/usr/bin/perl use strict; use warnings; my $passed_new_date = new_date(); my $fref = \&new_date_append(); ###--- HERE is my REF ---### sub new_date { my ( $year, $month, $day ) = (localtime)[ 5, 4, 3 ]; sprintf( "%04d%02d%02d", ( $year += 1900 ), $month + 1, $day ); } sub new_date_append { return my $monster_date = "OhioS$passed_new_date"; } if ( $passed_new_date and $$fref ) { print $$fref,"\n"; }
    Result
    >perl ref.pl OhioS20110630