Sponsored Content
Full Discussion: Perl strict
Top Forums Shell Programming and Scripting Perl strict Post 302276573 by buffoonix on Wednesday 14th of January 2009 05:42:27 AM
Old 01-14-2009
If you don't use the strict pragma in a Perl programme all the variables you define (or rather introduce) become implicitly package globals that appear in the symbol table.
At first glance this might tremendously ease the coding (for the novice) but this also is hugely error prone, especially to typos.
So if you inadvertently misspell a variable without strict the Perl compiler would silently declare a new package global without the faintest sign of warning, but this most of the times is pretty useless or even detrimental and will break your programme logic since you intended to refer to some previously declared and defined variable.
Instead when you use strict the Perl compiler will immediately abort compilation and issue an error message hinting at the reason and line which violated the syntax.
Besides, it is considered bad programming style to use global variables,
and one should almost always use lexically scoped variables (those declared by my)
Therefore, even the seasoned Perl programmer should always have the use strict; line at the beginning at their code, and that is one vital marker that indicates good Perl code.
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Strict Argument

Im trying to write a bash script that has an if statment that when the user enters ONLY that exact argument, will echo what follows that conditon. For example: for file in $1 do if then Var1=$(cat hello | egrep "that pattern" | awk '{ print $NF }') cat $Var1 fi done Basically,... (3 Replies)
Discussion started by: oxoxo
3 Replies

2. Shell Programming and Scripting

Passing date formats in Perl: i.e. Jul/10/2007 -> 20070710 (yyyymmdd) - Perl

Hi , This script working for fine if pass script-name.sh Jul/10/2007 ,I want to pass 20070710(yyyymmdd) .Please any help it should be appereciated. use Time::Local; my $d = $ARGV; my $t = $ARGV; my $m = ""; @d = split /\//, $d; @t = split /:/, $t; if ( $d eq "Jan" ) { $m = 0 }... (7 Replies)
Discussion started by: akil
7 Replies

3. Shell Programming and Scripting

New PERL guru's help on strict.pm

I opened strict.pm and found some not understandable stuff, please let me know if you have any Idea on the same. 1) Line 23 => $bits |= (what is $= here how it affect the statement) 2) Line 36 => $^H (what is that I haven't found any statement on this in google) 3) Line 41 =>... (3 Replies)
Discussion started by: jatanig
3 Replies

4. Shell Programming and Scripting

Perl :How to print the o/p of a Perl script on console and redirecting same in log file @ same time.

How can i print the output of a perl script on a unix console and redirect the same in a log file under same directory simultaneously ? Like in Shell script, we use tee, is there anything in Perl or any other option ? (2 Replies)
Discussion started by: butterfly20
2 Replies

5. UNIX for Advanced & Expert Users

perl and HP-UX : instmodsh in combination with software depot : update inventory for installed Perl

we create a HP-UX software depot with a new perl-modul. after installation of the software depot, the perl module i can't find with instmodsh in the inventory for installed Perl modules. - i have learned of using instmodsh command : i find out what modules are already installed on my system. ... (0 Replies)
Discussion started by: bora99
0 Replies

6. Shell Programming and Scripting

Help! Can't locate strict.pm after Cygwin update

I installed gcc4 today using setup.exe from cygwin. However, I cannot run any of my perl program after that. For example, Run@Run-THINK /home $ perl Process.pl Can't locate strict.pm in @INC (@INC contains: /usr/lib/perl5/5.10/i686-cygwin / usr/lib/perl5/5.10... (0 Replies)
Discussion started by: littledeer
0 Replies

7. UNIX for Advanced & Expert Users

Ssh disable strict checking

What are the different ways to disable ssh strict checking? I've seen this mentioned a few times but it doesn't seem to be working. $ ssh -o 'StrictHostKeyChecking no' admin@hostnamehttp://docs.oracle.com/cd/E35328_01/E35336/html/vmcli-ssh.html Is there a file somewhere in /etc that I could... (4 Replies)
Discussion started by: cokedude
4 Replies

8. Shell Programming and Scripting

Perl : Getopts and Strict -How to solve

How do I get past the error when using strict and GetOpts ? #!/usr/bin/perl use strict; use Getopt::Std; # Process the command line options die "Usage: $0 -r <router> -u <username> -p <password> -e <enable password>\n" if (@ARGV < 6); exit if (!getopts('r:u:p:e:')); my... (3 Replies)
Discussion started by: popeye
3 Replies

9. Programming

PERL: In a perl-scripttTrying to execute another perl-script that SETS SOME VARIABLES !

I have reviewed many examples on-line about running another process (either PERL or shell command or a program), but do not find any usefull for my needs way. (Reviewed and not useful the system(), 'back ticks', exec() and open()) I would like to run another PERL-script from first one, not... (1 Reply)
Discussion started by: alex_5161
1 Replies
Perl::Critic::Policy::TestingAndDebugging::ProhibitNoStrUser3Contributed Perl DocumePerl::Critic::Policy::TestingAndDebugging::ProhibitNoStrict(3)

NAME
Perl::Critic::Policy::TestingAndDebugging::ProhibitNoStrict - Prohibit various flavors of "no strict". AFFILIATION
This Policy is part of the core Perl::Critic distribution. DESCRIPTION
There are good reasons for disabling certain kinds of strictures, But if you were wise enough to "use strict" in the first place, then it doesn't make sense to disable it completely. By default, any "no strict" statement will violate this policy. However, you can configure this Policy to allow certain types of strictures to be disabled (See "CONFIGURATION"). A bare "no strict" statement will always raise a violation. CONFIGURATION
The permitted strictures can be configured via the "allow" option. The value is a list of whitespace-delimited stricture types that you want to permit. These can be "vars", "subs" and/or "refs". An example of this customization: [TestingAndDebugging::ProhibitNoStrict] allow = vars subs refs SEE ALSO
Perl::Critic::Policy::TestingAndDebugging::RequireUseStrict AUTHOR
Jeffrey Ryan Thalhammer <jeff@imaginative-software.com> COPYRIGHT
Copyright (c) 2005-2011 Imaginative Software Systems. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of this license can be found in the LICENSE file included with this module perl v5.16.3 2014-06-09 Perl::Critic::Policy::TestingAndDebugging::ProhibitNoStrict(3)
All times are GMT -4. The time now is 06:23 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy