> -----Original Message-----
> From: Ryan Frantz
> Sent: Tuesday, September 27, 2005 5:27 PM
> To: Dave Adams; beginners perl
> Subject: RE: Shift Question
>
>
>
> > -----Original Message-----
> > From: Dave Adams [mailto:[EMAIL PROTECTED]
> > Sent: Tuesday, September 27, 2005 5:17 PM
> > To: beginners perl
> > Subject: Shift Question
> >
> > QUESTION: What is the purpose of the line "my $msg = shift;"? I am
> > guessing it is for the @_ array but what list element is there to be
> > shifted off? It seems that the shift function is in a lot of
> > subroutines and I am confused as to their purpose.
>
> From what I understand shift defaults to @_ in a subroutine unless
> specified otherwise. If your sub looked like this:
>
> sub write_log($) {
> my $msg;
> print "$msg\n";
> }
>
> $teststring = 'Test Msg to SysLog';
> write_log($teststring);
>
> You'd get no output because $msg is undef.
I meant to be a little more explicit; in your code, the list element is
the string 'Test Msg to SysLog'. shift'ing it into $msg gives you
something to print.
>
> >
> > #!/bin/perl -w
> > (my $PROGNAME = $0) =~ s/^.*\///;
> > (my $SHORT_PROGNAME = $PROGNAME) =~ s/\.pl$//;
> > my $SYSLOG_PRIORITY = 'info';
> > my $SYSLOG_FACILITY = 'local4';
> >
> > use Sys::Syslog;
> >
> > sub write_log($) {
> > # write a datestamped message to the logfile, e.g.:
> > # &write_log('some message');
> >
> > my $msg = shift;
> >
> > # print message to logfile:
> > openlog($SHORT_PROGNAME,'pid','');
> > syslog("$SYSLOG_FACILITY|$SYSLOG_PRIORITY", '%s', "$msg");
> > closelog();
> >
> > }
> > $teststring = 'Test Msg to SysLog';
> > write_log($teststring);
> >
> > --
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > <http://learn.perl.org/> <http://learn.perl.org/first-response>
> >
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> <http://learn.perl.org/> <http://learn.perl.org/first-response>
>
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>