Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re^2: spliting a lengthy text

by reasonablekeith (Deacon)
on Nov 27, 2006 at 10:35 UTC ( [id://586222]=note: print w/replies, xml ) Need Help??


in reply to Re: spliting a lengthy text
in thread splitting and coloring

Very nice (++) but aren't you missing the new line? ...
print join ' ', unpack '(a10)*', "$_\n" for unpack '(a50)*', $str;
update that newline is in the wrong place...
print "" . join ' ', unpack '(a10)*', $_ . "\n" for unpack '(a50)*', $ +str;
update A regex solution based on your plan of attack (if only because (un)?pack still scares me :)
for ($str =~ /.{1,50}/g) {print join " ", /.{1,10}/g; print "\n"}
---
my name's not Keith, and I'm not reasonable.

Replies are listed 'Best First'.
Re^3: spliting a lengthy text
by BrowserUk (Patriarch) on Nov 27, 2006 at 11:02 UTC

    I habitually run perl with -l enabled (see perlrun), which has the effect of setting $/ =  "\n" (and $\ = "\n"), so print adds a newline automatically. Hence the output I posted is unmodifed.

    This makes print (roughly?) equivalent to say in Perl 6.

    I also seem to recall seeing a news item that suggested that this keyword would also be available in Perl 5 as of v5.10?


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
      I also seem to recall seeing a news item that suggested that this keyword would also be available in Perl 5 as of v5.10?

      Indeed it will. It is implemented as a weak keyword, thus you do have to write

      use feature 'say';

      ... to activate it. A search revealed that there were a number of modules on CPAN (predating the existence of Perl 6) that already define a routine named 'say'. Adding it as a regular keyword would have broken them, as well as unknowable amounts of code living behind firewalls that the porters could never know about.

      The Perl development team places a lot of importance in not breaking existing code (even if it means you have to resort to the above gymnastics in new code). If I remember correctly, a sitecustomize.pl program (run at the start of every incovation implicitly) will allow you to set this once and for all, for all code run on a given host.

      • another intruder with the mooring in the heart of the Perl

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (5)
As of 2024-04-23 06:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found