Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation


by mjg (Scribe)
on Jun 13, 2005 at 19:48 UTC ( #466265=user: print w/replies, xml ) Need Help??

Fell into Perl when doing sysadmin work on a bunch of SPARCstations in 1994. Since then, have used it for a mix of web development and data-munging. For the past several years (since 2013) Iíve had the good fortune of working in Perl shops. I hope it lasts. I blog about Perl and other things at

Posts by mjg
RFC: Porting map() and grep() to AppleScript in Meditations
1 direct reply — Read more / Contribute
by mjg
on Nov 22, 2009 at 18:51

    No real Perl code here, but I thought it would be neat to try to port the map() and grep() functions to AppleScript and see if that much-maligned language could use a little higher-order programming love.

    I've also posted a thread on MacScripter, but here's the code in question. Thoughts?

    on map over theList given script:theScript set resultList to {} repeat with theItem in theList set resultList to resultList & theScript's lambda(theItem) end repeat return resultList end map on grep over theList given script:theScript set resultList to {} repeat with theItem in theList tell theScript if lambda(theItem) is true then set resultList to resultList & theItem end if end tell end repeat return resultList end grep -- end library script mapScript property HowMany : 0 on lambda(someone) set HowMany to HowMany + 1 return someone & " Gardner " & HowMany end lambda end script map over {"Mark", "Erin", "David"} given script:mapScript script grepScript on lambda(someone) considering case if contents of someone is equal to "David" then return true end if return false end considering end lambda end script grep over {"Mark", "Erin", "David"} given script:grepScript
My in Perl Poetry
2 direct replies — Read more / Contribute
by mjg
on Jun 06, 2007 at 15:42
    Blame my co-worker Jim.
    #!/usr/bin/perl my %bologna = ( firstname => 'OSCAR', secondname => 'MAYER', ); chomp foreach @days; read STDIN, $me, 3; print "Because ", values %bologna, " has a way with BOLOGNA\n" if $me eq 'why';
Output results from a DBI select query in one line in Snippets Section
1 direct reply — Read more / Contribute
by mjg
on Apr 11, 2006 at 11:47
I'm finding myself using this idiom a lot for a current project. Adjust to taste for your own applications.
TMTOWTDI, WMI, and map abuse in Snippets Section
No replies — Read more | Post response
by mjg
on Mar 30, 2006 at 11:31
I'm working on a behemoth of a script to inventory Windows Oracle servers, using Win32::OLE and Microsoft's WMI to pick up various interesting facts. This is probably of interest to only a few people (if that's you, I feel your pain), but I ended up writing two snippets that do the same thing, and I thought it would make a good example of traditional procedural code vs. utter and total abuse of the map function.
Physical memory on remote machine in Code Catacombs
No replies — Read more | Post response
by mjg
on Mar 27, 2006 at 18:19
A short example of WMI and Win32::OLE to get info from another server. Note that the hostname needs to be laundered or Win32::OLE will cry.
Log In?

What's my password?
Create A New User
Domain Nodelet?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (3)
As of 2023-12-09 09:03 GMT
Find Nodes?
    Voting Booth?
    What's your preferred 'use VERSION' for new CPAN modules in 2023?

    Results (37 votes). Check out past polls.