Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
Hiya Monks,
I thought I understood subroutines until I needed to use File::Find. I can make it do what I want, but I'm disturbed because I don't understand how the subroutine used as its first parameter gets $_. For example:
This dutifully prints each file it finds under the current working directory. However if I commend out the find command and just call that sub directly:#!/usr/bin/perl use File::Find; find (\&testy, "."); sub testy { print $_; }
it does not print 'i am a nice parameter'. This made sense to me before using File::Find since I know that subroutines have @_, not $_, even when only a single parameter is passed.#!/usr/bin/perl use File::Find; #find (\&testy, "."); testy ('i am a nice parameter'); sub testy { print $_; }
I feel like I'm missing a simple but important concept. Any input would be greatly appreciated!
Back to
Seekers of Perl Wisdom