Perl can tell you what it means: perldoc -v "$@"
(You will have to use single- or double- (or no) quotes around $@ as appropriate to your operating system and shell; the command line above works for me on Win7.)
See also $@ and Error Variables in perlvar.
thanks for your reply. I have checked "perldoc -v '$@' " at my RHE4 with perl v5.8.5, but it shows "No documents found for '$@' ". I then checked the link you provided (Error Variables) to find an explanation as this:
$@ is set if the string to be eval-ed did not compile (this may happen if open or close were imported with bad prototypes), or if Perl code executed during evaluation die()d. In these cases the value of $@ is the compile error, or the argument to die (which will interpolate $! and $? ).
Is this mean $@ is only used to contain reasons why perl failed? Thanks.
The Perl special variable $@ holds the reason why eval failed during compilation or execution. See the discussion of eval in perlfunc. Perl failures may have causes that do not originate in eval, and the reasons (actually, error message strings or numeric codes) for these failures are held in other error variables.