On Wed, Mar 27, 2002 at 09:05:02PM -0800, bob ackerman wrote: > i copied the code as is, and got no error. > are you sure line #29 is where you are calling $_incr_count->()? > are you sure the code you are executing is what you posted? >
No apparently this is not the code that gives me the error message! Below is the code that gives me the same error message. #!/usr/bin/perl -w my $cd = CD::Music->new( "Canon in D", "Pachelbel", "Boering Mussak GmbH", "1729-67836847-1", 1, 8,8, 5.0); # How many CDs in the entire collection? print "The number of CDs is ",CD::Music->get_count, "\n"; package CD::Music; use strict; { my $_count = 0; sub get_count {$_count} my $_incr_count = sub {++$_count};#create an anonymous subroutine sub new{ $_incr_count->();#call anonymous subroutine ############################################# # Instead I could put this code?: # my $_incr_count = sub {++$_count}; #$_incr_count->(); ############################################### $_incr_count->(); #call the anonymous subroutine #Gives me an error message shown below my ($class) = @_; bless { _name => $_[1], #second value passed to subroutine _artist => $_[2], #third value passed to subroutine _publisher => $_[3], #and so on _ISBN => $_[4], _tracks => $_[5], _room => $_[6], _shelf => $_[7], _rating => $_[8], }, $class; } } ######################################################## #ERROR MESSAGE WITH 'use strict' COMMENTED: # #Use of uninitialized value in subroutine entry at #/home/paul/bin/test16.pl line 27. #Undefined subroutine &main:: called at /home/paul/bin/test16.pl #line 27. ######################################################## ######################################################## #ERROR MESSAGE WITH 'use strict' #Use of uninitialized value in subroutine entry at #/home/paul/bin/test16.pl line 27. #Can't use string ("") as a subroutine ref while "strict refs" #in use at /home/paul/bin/test16.pl line 27. ######################################################## Again, I believe that the reference to the anonymous subroutine expires once I start the 'new' subroutine. If I put the anonymous subroutine within the 'new' subroutine block, then the script executes correctly, and I still make sure that you can't increment the value of the number of CDs directly. Thanks! Paul -- ************************ *Paul Tremblay * *[EMAIL PROTECTED]* ************************ -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]