/usr/share/perl5/Audio/Nama/Wav.pm is in nama 1.208-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | package Audio::Nama::Wav;
our $VERSION = 1.0;
use Audio::Nama::Assign qw(:all);
use Audio::Nama::Util qw(join_path);
use Audio::Nama::Log qw(logsub logpkg);
use Memoize qw(memoize unmemoize); # called by code in Audio::Nama::Memoize.pm
use warnings;
no warnings qw(uninitialized);
use Carp;
sub get_versions {
my %args = @_;
$args{sep} //= '_';
$args{ext} //= 'wav';
my ($sep, $ext) = ($args{sep}, $args{ext});
my ($dir, $basename) = ($args{dir}, $args{name});
logpkg(__FILE__,__LINE__,'debug',"getver: dir $dir basename $basename sep $sep ext $ext");
my %versions = ();
for my $candidate ( candidates($dir) ) {
# logpkg(__FILE__,__LINE__,'debug',"candidate: $candidate");
my( $match, $dummy, $num) =
( $candidate =~ m/^ ( $basename
($sep (\d+))?
\.$ext )
$/x
); # regex statement
if ( $match ) { $versions{ $num || 'bare' } = $match }
}
logpkg(__FILE__,__LINE__,'debug',sub{"get_version: " , Audio::Nama::json_out(\%versions)});
%versions;
}
sub candidates {
my $dir = shift;
$dir = File::Spec::Link->resolve_all( $dir );
opendir my $wavdir, $dir or die "cannot open $dir: $!";
my @candidates = readdir $wavdir;
closedir $wavdir;
@candidates = grep{ ! (-s join_path($dir, $_) == 44 ) } @candidates;
#logpkg(__FILE__,__LINE__,'debug',join $/, @candidates);
@candidates;
}
sub targets {
my %args = @_;
# $Audio::Nama::debug2 and print "&targets\n";
my %versions = get_versions(%args);
if ($versions{bare}) { $versions{1} = $versions{bare};
delete $versions{bare};
}
logpkg(__FILE__,__LINE__,'debug',sub{"\%versions\n================\n", json_out(\%versions)});
\%versions;
}
sub versions {
# $Audio::Nama::debug2 and print "&versions\n";
my %args = @_;
[ sort { $a <=> $b } keys %{ targets(%args)} ]
}
sub last {
%args = @_;
pop @{ versions(%args) }
}
1;
|