Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re^4: logfile rotate w/ pass by reference

by drock (Beadle)
on Mar 14, 2005 at 17:47 UTC ( #439375=note: print w/replies, xml ) Need Help??

in reply to Re^3: logfile rotate w/ pass by reference
in thread logfile rotate w/ pass by reference

ok so in your sample code how does the subroutine know what variable it is receiving based off of your filename? Im ny code I have two distinct filenames I want to pass to logfile::rotate so how do I do this?
if ( ( my $dif = $dif[1] - $dif[2] ) > 199 ) { &mailme; logroll($out); if ( ( my $diff = $diff[1] - $diff[2] ) > 199 ) { &mailme; logroll($out1); sub logroll { my $logs = new Logfile::Rotate (File => ???? # <---- what is here based? Count => 10, # off of 2 diff filenames Gzip => 'lib', Dir => '/usr/local/log/old', Flock => 'yes', Persist => 'yes' ); $logs->rotate(); }

Replies are listed 'Best First'.
Re^5: logfile rotate w/ pass by reference
by Joost (Canon) on Mar 14, 2005 at 17:53 UTC
    It doesn't need to know the name of the variable that is being passed. That's whole point of having subroutine arguments in the first place.

    All your logroll function needs to know is the name of the file. The name of the file is the value of the argument. The name of the variable is not important.

    sub print_value { my $value = shift; print $value; } my $var1 = "value in var1\n"; my $var2 = "value in var2\n"; print_value($var1); print_value($var2);

    This is all documented in the perlfunc manpage.

    update: I see I mistyped the code in the previous example. Maybe my update will make it clearer. :-)

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://439375]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (3)
As of 2023-02-09 00:03 GMT
Find Nodes?
    Voting Booth?
    I prefer not to run the latest version of Perl because:

    Results (44 votes). Check out past polls.