in reply to Re^2: No Substitution Happening
in thread No Substitution Happening
When you use a variable inside a string like "This is a string with $var interpolated into it" Perl replaces the variable ($var in this example) with the contents of the variable. However, if you write "$var" you can omit the quotes because the variable will generally be treated as a string in any case.
A variable that starts with $ is a scalar variable. They can only store one thing, a number or a string or a reference to something. $_ is just a special scalar variable that is used by default for some things. At the start of a subroutine you generally should not depend on $_ being set to some expected value. You need to ask yourself "Where is $_ getting a value from and what sort of value is it?". To answer that you need to look at the documentation for, in this case File::Find, and see if it says that $_ is getting set to some value for you. If it doesn't (it doesn't you know), then it ain't.
It may be that you are getting confused with @_, which is the special array variable used to pass parameters into a subroutine. However, again you need to consult the documentation to see what is passed into the subroutine by File::Find. From the documentation you will find that "The wanted function takes no arguments but rather does its work through a collection of variables.". So that doesn't help you either.
Take another look at the code that I wrote and search the File::Find documentation for anything that looks File::Find related that you don't understand. Everything else should be pretty clear. :)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: No Substitution Happening
by coolboarderguy (Acolyte) on Mar 24, 2006 at 09:03 UTC |