I had a consultant do some a work a couple of years ago and am now trying to solve a problem and I can't figure what this is doing:
...in program...
$MSG->trace( "my message");
...in module..
sub trace { shift->_message( TRACE, @_ ) }
sub channels_by_fh { map { $_->[0] } @{ shift->{handles} } }
sub channels_by_file { () }
sub channels_by_email { () }
sub channels_by_level { grep { $_[0]->level( $_[1] ) } $_[0]->channels
+ }
sub _message
{
my $self = shift;
my $level = shift;
foreach my $channel ( $self->channels_by_level( $level ) )
{
print $channel $self->tag($level) . "@_" . "\n";
}
}
Right now I am getting an error message of "Can't locate object method "channels" via package..." which is pointed at the line "sub channels_by_level", I am self taught and don't understand what the subroutine is doing, I am not familiar with what grep does or which direction this lines is working. I am hoping someone can explain this for me.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|