_END }
close NEW or die "write error in $podtmp: $!\n"; close POD or die "read error in $pod: $!\n"; if($changes) { rename $podtmp, $pod or die "rename $podtmp $pod: $!" } else { unlink $podtmp or die "unlink $podtmp: $!" } }
sub produce_table($) { my $table = shift;
my @rows;
warn "TABLE $table\n"; if($table eq 'confstr') { my @names = confstr_names; foreach my $name (sort @names) { my $val = confstr $name; push @rows, [ $name, defined $val ? "'$val'" : 'undef' ] } } elsif($table eq 'sysconf') { my @names = sysconf_names; foreach my $name (sort @names) { my $val = sysconf $name; push @rows, [ $name, defined $val ? $val : 'undef' ] } } elsif($table eq 'pathconf') { my @names = pathconf_names; foreach my $name (sort @names) { my $val = pathconf __FILE__, $name; push @rows, [ $name, defined $val ? $val : 'undef' ] } } elsif($table eq 'rlimit') { my @names = rlimit_names; foreach my $name (sort @names) { my ($soft, $hard, $success) = getrlimit $name; $soft //= 'undef'; $hard //= 'undef'; push @rows, [ $name, sprintf "%-25s %s", $soft, $hard ] } } elsif($table eq 'ulimit') { my @names = ulimit_names; foreach my $name (sort @names) { my $val = $name =~ m/GET/ ? ulimit $name : '(setter)'; push @rows, [ $name, defined $val ? $val : 'undef' ] } } elsif($table eq 'math') { my $constants = $POSIX::1003::Math::EXPORT_TAGS{constants}; no strict 'refs'; foreach my $name (sort @$constants) { my $val = &{"POSIX::1003::Math::$name"}; defined $val or $val = 'undef'; push @rows, [ $name, $val ]; } } elsif($table eq 'math') { my $constants = $POSIX::1003::Math::EXPORT_TAGS{constants}; no strict 'refs'; foreach my $name (sort @$constants) { my $val = &{"POSIX::1003::Math::$name"}; defined $val or $val = 'undef'; push @rows, [ $name, $val ]; } } elsif($table eq 'signals') { my $constants = $POSIX::1003::Signals::EXPORT_TAGS{constants}; no strict 'refs'; foreach my $name (sort @$constants) { my $val = &{"POSIX::1003::Signals::$name"}; defined $val or $val = 'undef'; push @rows, [ $name, $val ]; } } elsif($table eq 'fdio') { my $constants = $POSIX::1003::FdIO::EXPORT_TAGS{constants}; no strict 'refs'; foreach my $name (sort @$constants) { my $val = &{"POSIX::1003::FdIO::$name"}; defined $val or $val = 'undef'; push @rows, [ $name, $val ]; } } elsif($table eq 'fsys') { my $constants = $POSIX::1003::FS::EXPORT_TAGS{constants}; no strict 'refs'; foreach my $name (sort @$constants) { my $val = &{"POSIX::1003::FS::$name"}; defined $val or $val = 'undef'; push @rows, [ $name, $val ]; } } elsif($table eq 'termios') { my $constants = $POSIX::1003::Termios::EXPORT_TAGS{constants}; no strict 'refs'; foreach my $name (sort @$constants) { my $val = &{"POSIX::1003::Termios::$name"}; defined $val or $val = 'undef'; push @rows, [ $name, $val ]; } } else { die "do not know how to make table $table"; }
my $longest_name = 0; my $longest_val = 5; # at least 'undef' for (@rows) { $longest_name = length $_->[0] if $longest_name < length $_->[0]; $longest_val = length $_->[1] if $longest_val < length $_->[1]; } my @lines; foreach (@rows) { my ($name, $value) = @$_; $name .= ' ' x ($longest_name - length $name); push @lines, " $name $value\n"; } if($longest_name+$longest_val < 20) { push @lines, "\n" while @lines %3; my $rows = @lines / 3; my @left = splice @lines, 0, $rows; chomp @left; my @middle = splice @lines, 0, $rows; chomp @middle; my @right = @lines; @lines = (); push @lines, sprintf "%-21s %-21s %s" , shift @left, shift @middle, shift @right while @left; } elsif($longest_name+$longest_val < 30) { push @lines, "\n" if @lines %2; my @left = splice @lines, 0, @lines/2; chomp @left; my @right = @lines; @lines = (); push @lines, sprintf "%-31s %s", shift @left, shift @right while @left; } @lines; }
To install POSIX::1003, copy and paste the appropriate command in to your terminal.
cpanm
cpanm POSIX::1003
CPAN shell
perl -MCPAN -e shell install POSIX::1003
For more information on module installation, please visit the detailed CPAN module installation guide.