In a message dated 4/1/2004 5:03:40 PM Eastern Standard Time, 
[EMAIL PROTECTED] writes:
People of the Perl, 

>from my understanding strict disallows soft references, ensures that all 
>variables are declared before usage and disallows barewords except for 
>subroutines.
>
>what is a soft reference?

A soft reference is a symbolic reference. For example:
$hello = "Hey, what's up?";
$var = "hello";
print $$var; #or, if it helps you see it better 'print ${$var}'

This may be what you want, but may not be (usually you want hard references), 
hence use strict 'refs'

>what is a bareword?

A bareword is...a bare...word? Really its just a word not expicitly denoted 
to be something. For example:

sub foo { 1 }

foo;

foo is a barewords. In the above case, strict doesn't freak out because the 
subroutine is predeclared. But if you just throw around words whenever you 
want, it will freak out. For example,
@array = (String, String, String, String);

String is a bareword. strict will throw up an exception so fast. 

2 exceptions to the bareword throw-up: left side of '=>' and inside curly 
braces. For Example: 

%hash = (
    left => 'right'
)
print $hash{left};




>why is strict disallowing a compile here.... When I comment out strict the 
>syntax checks outs as ok!???
>how do I display each element # with its corresponding data line, b/c I 
>only want certain elements printed out?

People already answered these. On an aside, Your code may compile dandy, 
that's not what strict is for. If perl could catch the errors like the ones you 
stated, there would be no need for strict. Strict is basically just so you don't 
screw up. You don't want barewords because you might think it means something 
else. You don't want soft references when you think you're using hard 
references. You don't want your code to screw up and you not to know why cause you 
used $var on 10,000 of the 20,000 lines and $Var on the other 10,000.

-will
(the above message is double rot13 encoded for security reasons)

Most Useful Perl Modules
-strict
-warnings
-Devel::DProf
-Benchmark
-B::Deparse
-Data::Dumper
-Clone (a Godsend)
-Perl::Tidy
-Beautifier

Reply via email to