App-sh2p
view release on metacpan or search on metacpan
lib/App/sh2p/Builtins.pm view on Meta::CPAN
# Also does for echo
sub do_print {
my $ntok = 1;
my ($name, @args) = @_;
my $newline = 1;
my $handle = '';
my $opt_u;
my %options;
local @ARGV;
my $redirection = '';
my $file = '';
my $from_fd = ''; # TODO - not currently supported
# Move the comment to before the statement
if ( substr($args[-1],0,1) eq '#' ) {
my $comment = pop @args;
out "\n";
iout $comment;
lib/App/sh2p/Builtins.pm view on Meta::CPAN
return $ntok;
} # do_print
########################################################
sub do_read {
my %args;
my $prompt = 'undef';
my $ntok;
local @ARGV;
# First argument is 'read'
shift @_;
$ntok++;
# Find end of statement
for my $arg (@_) {
last if is_break($arg) || $arg eq ';'; # Inserted in sh2p loop
push @ARGV, $arg;
$ntok++;
lib/App/sh2p/Builtins.pm view on Meta::CPAN
out ';';
return $ntok;
}
########################################################
sub do_touch {
my $ntok = @_;
my $cmd = shift;
local @ARGV = @_;
my %args;
getopts ('acdfmr:t', \%args);
if (keys %args) {
error_out "$cmd options not currently supported";
}
my $text = "# $cmd @_\n";
for my $file (@ARGV) {
lib/App/sh2p/Builtins.pm view on Meta::CPAN
}
########################################################
sub do_tr {
my ($cmd, @args) = @_;
my $ntok = 1;
my %args;
local @ARGV = @args;
getopts ('cCsd', \%args);
if (keys %args) {
error_out "$cmd options not currently supported";
}
$ntok = @_ - @ARGV;
return $ntok if !@ARGV;
my $from = shift @ARGV;
lib/App/sh2p/Builtins.pm view on Meta::CPAN
# Needs more work!
sub do_typeset {
my $ntok = @_;
my %args;
#print STDERR "do_typeset: $_[0]\n";
# First argument should be 'typeset' or 'declare'
shift @_;
local @ARGV = @_;
getopts ('UPRTUXLRZ:iftux', \%args);
my %type = (i => 'int',
l => 'lc',
u => 'uc',
Z => '%0nd',
L => '%-s',
R => '%s',
X => '%X',
( run in 0.587 second using v1.01-cache-2.11-cpan-49f99fa48dc )