Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Perl Advent 2012-12-01: Sweet Path::Class is Coming to Town

by tobyink (Abbot)
on Dec 01, 2012 at 20:19 UTC ( #1006637=CUFP: print w/replies, xml ) Need Help??

Today's Perl Advent is about Path::Class - definitely my favourite file/directory manipulation tool. I was disappointed to see that it didn't also mention David Golden's Path::Class::Rule.

So anyway, here's my rewrite of the script from "How can i debug compound map/grep statements just using print?" using Path::Class::Rule...

use 5.010; use strict; use warnings; use Getopt::Long qw( :config no_ignore_case ); use Path::Class::Rule; GetOptions( 'help|h' => sub { help(0) }, 'suffix=s' => \(my $suffix = ''), 'age=i' => \(my $age = 0), 'count' => \(my $count = 0), ); @ARGV or help(1); my @matches = "Path::Class::Rule" -> new -> file -> name(qr{\.$suffix$}) -> modified(">$age") -> all(@ARGV); if ($count) { say "count: ", scalar @matches; } else { say for @matches; } sub help { print <<"USAGE"; exit($_[0]); $0 --suffix=SUFFIX --age=DAYS DIR [DIR ...] $0 --suffix=SUFFIX --age=DAYS --count DIR [DIR ...] USAGE }
perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: CUFP [id://1006637]
Front-paged by Arunbear
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (11)
As of 2018-06-22 16:03 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (124 votes). Check out past polls.