ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> activeperl
activeperl
Re: PERL create file
by Bill Luebkert other posts by this author
Jul 6 2009 6:25AM messages near this date
Re: PERL create file | Re: PERL create file
Ingo Schwarze wrote:
>  Hi Bill and Brian,
>  
>  Bill Luebkert wrote on Fri, Jul 03, 2009 at 04:26:46AM -0700:
> > Brian Raven wrote:
>  
> >> I would advise using the 3 argument form of open,
> >> localise the file handle, 
>  
> > Neither of those suggestions 'should' change a thing.
>  
>  No, but they are excellent advice anyway, and a strict style can help
>  a lot when chasing bugs.
>  
>  The two-argument form of open(3p) really ought to be considered legacy,
>  and there is no excuse for using it in new code, except in very
>  special circumstances.  I feel two-argument open nearly as ugly as
>  the failure to use strict and warnings.  At least, the multi-argument
>  form is required for anything security-related.  Even in cases where
>  two-argument open can actually been proven to be correct as well, like
>  in the case discussed here, the correctness of the multi-argument form
>  is definitely easier to verify by code inspection, so using it is
>  always a gain in security.

I totally disagree - I see nothing wrong with using the 2 arg form and
have always and will continue to use it.  I find the 3 arg form to be
the more ugly of the two and would probably only use it myself if I
needed to (there are cases where only 2-arg will do what you want and
other cases where only 3-arg will work - but those are so rare they're
hardly worth mentioning and I'd be avoiding creating situations that
would 'require' the necessity of either form specifically).

>  The same applies to non-local file handles.  They should have no place
>  in new code, except in very special circumstances.

Whether or not a file handle is localized or not depends on how you've
coded your script.  It's always nice to localize and compartmentalize
when possible, but for quick solutions and non-critical solutions that
don't have to worry about long life or multiple maintainers it just
isn't always practical to put the extra effort in - 90% of the scripts
I write are for one-time or infrequent use.  It could be you're referring
more to using anonymous FH references rather than 'localizing' the FH.

>  I think the regulars should consistently encourage good coding
>  practices (which both of you almost always do, thanks!), even if
>  the sloppiness at hand cannot be proven to be causing the problem
>  or to be hiding the cause of the problem presented.

First you have to definitively define good coding practices.  While I
always use strict and warnings, the other suggestions made in this
thread I seldom adhere to.  I'm of course not writing for NASA anymore
either - I write what's comfortable for me and there's always more than
one way to do it.  ;)
_______________________________________________
ActivePerl mailing list
ActivePerl@[...].com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Thread:
Saqib Rafique
Brian Raven
Bill Luebkert
Ingo Schwarze
Bill Luebkert
Serguei Trouchelle
Bill Luebkert
Jan Dubois
Ingo Schwarze
Mohammed Mustafa
Stanislaw Romanski

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved