Re: REGEXP removing - il- - -b-f and - il- - - - f



Ing. Branislav Gerzo wrote:
JupiterHost.Net [JN], on Wednesday, April 27, 2005 at 10:23 (-0500)
thinks about:

JN> No its not, you can if you want but it pointless:

I read it somewhere (it was perl cookbook/learning perl from o'reilly
maybe). Always declare

my @a = ( );

And here is why, if I remember correctly - if you declare
my @a; you should think you declare empty array. After that, in script
you should use @a; which do nothing. So my @a = ( ); is good practise
I think. It is the same for hashes.

"my @a;" creates the lexical variable @a at compile time and since it has just been created it will be empty. "my @a = ();" creates the variable during compilation but the assignment (IIRC) has to be done at run time. The end result is the same but the assignment makes it a tiny bit slower (not enough to really worry about.)


$ perl -e'
use Benchmark qw(cmpthese);
cmpthese( -10, {
assign => sub { my @a = (); my @b = (); my @c = (); my @d = (); return @a .. @b . @c . @d },
noassign => sub { my @a; my @b; my @c; my @d; return @a . @b . @c . @d }
} );
'
Rate assign noassign
assign 112694/s -- -2%
noassign 115567/s 3% --



 >> $|++;, and I use $| = 1;
JN> That two ways to assign 1 to $|, its not similar to the array thing at all.

I meant good practise in scripts. What about when somewhere in script
will be $| = -1; pr $|-- ?
$| = 1 will work always.

Any true (numeric) value assigned to $| will set it to 1 and any false (numeric) value will set it to 0.


$ perl -e'
for ( -876868, -1, 1, 84859, "0", "abcdef", undef ) {
    $| = $_;
    print "\$_ = $_";
    print "  and  \$| = ", $|;
    print "  and  ++\$| = ", ++$|;
    print "\n";
    }
'
$_ = -876868  and  $| = 1  and  ++$| = 1
$_ = -1  and  $| = 1  and  ++$| = 1
$_ = 1  and  $| = 1  and  ++$| = 1
$_ = 84859  and  $| = 1  and  ++$| = 1
$_ = 0  and  $| = 0  and  ++$| = 1
$_ = abcdef  and  $| = 0  and  ++$| = 1
$_ =   and  $| = 0  and  ++$| = 1


--$| and $|-- have the affect of toggling the value of $| between 0 and 1.

$ perl -e'
for ( -876868, -1, 1, 84859, "0", "abcdef", undef ) {
    $| = $_;
    print "\$_ = $_";
    print "  and  \$| = $|";
    print "  and  --\$| = ", --$|;
    print "  and  --\$| = ", --$|;
    print "\n";
    }
'
$_ = -876868  and  $| = 1  and  --$| = 0  and  --$| = 1
$_ = -1  and  $| = 1  and  --$| = 0  and  --$| = 1
$_ = 1  and  $| = 1  and  --$| = 0  and  --$| = 1
$_ = 84859  and  $| = 1  and  --$| = 0  and  --$| = 1
$_ = 0  and  $| = 0  and  --$| = 1  and  --$| = 0
$_ = abcdef  and  $| = 0  and  --$| = 1  and  --$| = 0
$_ =   and  $| = 0  and  --$| = 1  and  --$| = 0



John
--
use Perl;
program
fulfillment
.



Relevant Pages

  • Re: Comparing "tables of values"
    ... Then I suggest you learn Perl first. ... assignment before you do that. ... If you want help *learning* Perl, ... If you want someone to write the script for you, ...
    (perl.beginners)
  • 2005-10-23 [de.comp.lang.perl.cgi] FAQ
    ... Programmiersprache Perl in CGI-Scripten. ... Wo gibt es Dokumentation über Perl und CGI? ... Hilfe zum Programm perldoc kann man mit 'perldoc perldoc' ... Mein Script läuft nicht bei meinem Provider. ...
    (de.comp.lang.perl.cgi)
  • 2005-10-23 [de.comp.lang.perl.cgi] FAQ
    ... Programmiersprache Perl in CGI-Scripten. ... Wo gibt es Dokumentation über Perl und CGI? ... Hilfe zum Programm perldoc kann man mit 'perldoc perldoc' ... Mein Script läuft nicht bei meinem Provider. ...
    (de.comp.lang.perl.cgi)
  • 2005-10-23 [de.comp.lang.perl.cgi] FAQ
    ... Programmiersprache Perl in CGI-Scripten. ... Wo gibt es Dokumentation über Perl und CGI? ... Hilfe zum Programm perldoc kann man mit 'perldoc perldoc' ... Mein Script läuft nicht bei meinem Provider. ...
    (de.comp.lang.perl.cgi)
  • 2005-11-20 [de.comp.lang.perl.cgi] FAQ
    ... Programmiersprache Perl in CGI-Scripten. ... Wo gibt es Dokumentation über Perl und CGI? ... Hilfe zum Programm perldoc kann man mit 'perldoc perldoc' ... Mein Script läuft nicht bei meinem Provider. ...
    (de.comp.lang.perl.cgi)