Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: What I Most Recently Learned in Perl, But Should Have Already Known

by GrandFather (Saint)
on Aug 16, 2006 at 22:55 UTC ( [id://567781]=note: print w/replies, xml ) Need Help??


in reply to What I Most Recently Learned in Perl, But Should Have Already Known

You may want to look at pack and unpack too.


DWIM is Perl's answer to Gödel
  • Comment on Re: What I Most Recently Learned in Perl, But Should Have Already Known

Replies are listed 'Best First'.
Re^2: What I Most Recently Learned in Perl, But Should Have Already Known
by liverpole (Monsignor) on Aug 16, 2006 at 23:02 UTC
    Yes, GrandFather, I know about pack and unpack.  And although I don't consider myself an expert at them (... yet :-D), I have used them in quite a few programs to date.  Anyone who has done socket programming (for example) will certainly have learned how to use them.

    But how about you?  Do you have any stories to share about concepts which you've learned in the recent past?


    s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/

      I learned something about pack/unpack writing Updated QuickTime format movie file dumper. But the cool thing I learned writing that code was using can to assist in the context of a "dispatch by name":

      my $member = "dump_$key"; my $name = "name_$key"; $name = $self->can($name) ? $self->$name () . ' ' : ''; ... if ($self->can($member)) { $self->$member ($pos, $len);

      $key is an "atom" code from the file being parsed. If there is a handler for the atom $self->$member dispatches to the code to handle it. One neat thing about this is that a derived class can add handlers and the parser just takes it all in its stride. I reckon that's pretty cool - perhaps even elegant. :)

      One way to do a binary conversion is:

      my $str = '001100010011001100110001'; my $value = pack ('B*', $str); print $value;

      DWIM is Perl's answer to Gödel

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (4)
As of 2024-04-24 19:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found