MYDan
view release on metacpan or search on metacpan
dan/agent/argv/edump view on Meta::CPAN
#!# perl: agent/argv/dump
use strict;
use warnings;
use Cwd;
use Digest::MD5;
use Getopt::Long;
return sub
{
local $/;
my ( $file, %o, $data ) = shift;
return [ %o ] unless $file && -f $file;
%o = ( path => $file =~ /^\// ? $file : Cwd::abs_path( $file ) );
Getopt::Long::GetOptionsFromArray( \@_, \%o, qw( path=s chmod=s chown=s cc ) );
if( delete $o{cc} )
{
my ( $uid, $mode ) = ( stat $file )[ 4, 2 ];
$o{chmod} ||= $mode = sprintf( "%04o", $mode & 07777 );
$o{chown} ||= ( getpwuid($uid) )[0];
}
$o{md5} = Digest::MD5->new()->add( $data = `cat $file` )->hexdigest();
return ( \%o, data => $data );
};
( run in 2.543 seconds using v1.01-cache-2.11-cpan-98e64b0badf )