Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^2: Uninitialized warnings trouble

by tybalt89 (Monsignor)
on Dec 14, 2022 at 05:46 UTC ( [id://11148853]=note: print w/replies, xml ) Need Help??


in reply to Re: Uninitialized warnings trouble
in thread Uninitialized warnings trouble

Fun little problem. Here's another entry in my "The only data structure needed is a multi-line string" collection.

#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11148831 use warnings; sub quarterturn { my $new = ''; $new .= "\n" while s/.$/ $new .= $&; '' /gem; return $new; } my $forest = do { local (@ARGV, $/) = 'input8.txt'; <> }; my $visible = ''; for ( 0 .. 3 ) { $visible |= $forest =~ s{(.)(?=(.*))}{ $2 =~ /[$1-9]/ ^ 1 }ger; $_ = quarterturn for $forest, $visible; } my $totalvisible = $visible =~ tr/1//; # count ones print "$forest\n$visible\ntotal visible: $totalvisible\n";

Replies are listed 'Best First'.
Re^3: Uninitialized warnings trouble
by rsFalse (Chaplain) on Dec 14, 2022 at 22:53 UTC
    Nice code of yours!

    I will share an alternative to your regex, which is longer and uses (?{ ... }), but avoids repeated lookahead:
    for ( 0 .. 3 ) { my $max; $visible |= $forest =~ s { ^ (?{ $max = -1; }) (*FAIL) | (\d) } { length( $1 > $max and $max = $1 ) }germx; $_ = quarterturn for $forest, $visible; }
Re^3: Uninitialized warnings trouble
by jwkrahn (Abbot) on Dec 14, 2022 at 07:45 UTC
    $new .= "\n" while s/.$/ $new .= $&; '' /gem;

    Did you test this?

    $ time perl -e' use Data::Dumper; $Data::Dumper::Useqq = 1; my $x = "123456789\n"; print Dumper $x; my $new = ""; $new .= "\n" while $x =~ s/.$/ $new .= $&; '' /gem; print Dumper $new; ' $VAR1 = "123456789\n"; Out of memory! real 1m54.230s user 0m3.216s sys 0m9.332s

    BTW, my system has 32GB of RAM     ouch!

    Sorry, my mistake was leaving in the single quotes, oops.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11148853]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (5)
As of 2024-03-29 10:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found