gwhite has asked for the wisdom of the Perl Monks concerning the following question:
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.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: I don't understand this grep
by ccn (Vicar) on Nov 05, 2008 at 17:52 UTC | |
by gone2015 (Deacon) on Nov 05, 2008 at 18:07 UTC | |
by ikegami (Patriarch) on Nov 05, 2008 at 18:50 UTC | |
by ccn (Vicar) on Nov 05, 2008 at 19:17 UTC | |
by gwhite (Friar) on Nov 05, 2008 at 19:25 UTC | |
by gwadej (Chaplain) on Nov 05, 2008 at 18:11 UTC | |
by jwkrahn (Abbot) on Nov 05, 2008 at 18:37 UTC | |
by massa (Hermit) on Nov 05, 2008 at 19:00 UTC | |
by gwhite (Friar) on Nov 05, 2008 at 19:21 UTC | |
by gwadej (Chaplain) on Nov 05, 2008 at 19:28 UTC | |
Re: I don't understand this grep
by toolic (Bishop) on Nov 05, 2008 at 18:06 UTC |