Class-Usul
view release on metacpan or search on metacpan
lib/Class/Usul/Functions.pm view on Meta::CPAN
}
return \@paths;
}
sub get_user (;$) {
my $user = shift; is_win32() and return Class::Null->new;
defined $user and $user !~ m{ \A \d+ \z }mx and return getpwnam( $user );
return getpwuid( $user // $UID );
}
sub hex2str (;$) {
my @a = split m{}mx, shift // q(); my $str = q();
while (my ($x, $y) = splice @a, 0, 2) { $str .= pack 'C', hex "${x}${y}" }
return $str;
}
lib/Class/Usul/Functions.pm view on Meta::CPAN
=head2 C<get_cfgfiles>
$paths = get_cfgfiles $appclass, $dirs, $extns
Returns an array ref of configurations file paths for the application
=head2 C<get_user>
$user_object = get_user $optional_uid_or_name;
Returns the user object from a call to either C<getpwuid> or C<getpwnam>
depending on whether an integer or a string was passed. The L<User::pwent>
package is loaded so objects are returned. On MSWin32 systems returns an
instance of L<Class::Null>. Defaults to the current uid but will lookup the
supplied uid if provided
=head2 C<hex2str>
$string = hex2str $pairs_of_hex_digits;
Converts the pairs of hex digits into a string of characters
lib/Class/Usul/IPC.pm view on Meta::CPAN
my $_set_fields = sub {
my ($has, $p) = @_; my $flds = {};
$flds->{id } = $has->{pid } ? $p->pid : NUL;
$flds->{pid } = $has->{pid } ? $p->pid : NUL;
$flds->{ppid } = $has->{ppid } ? $p->ppid : NUL;
$flds->{start} = $has->{start } ? time2str( '%d/%m %H:%M', $p->start ) : NUL;
$flds->{state} = $has->{state } ? $p->state : NUL;
$flds->{tty } = $has->{ttydev} ? $p->ttydev : NUL;
$flds->{time } = $has->{time } ? int $p->time / 1_000_000 : NUL;
$flds->{uid } = $has->{uid } ? getpwuid $p->uid : NUL;
if ($has->{ttydev} and $p->ttydev) {
$flds->{tty} = $p->ttydev;
}
elsif ($has->{ttynum} and $p->ttynum) {
$flds->{tty} = $p->ttynum;
}
else { $flds->{tty} = NUL }
if ($has->{rss} and $p->rss) {
( run in 0.397 second using v1.01-cache-2.11-cpan-8d75d55dd25 )