in reply to Arguments from CLI or <STDIN>
Hi burszuras,
say
substr+lc crypt(qw $i3 SI$),4,5
You may also be interested in the -t file test (on line 23):
which is a nice way to discover whether you're at the tail end of a pipe or not.-t Filehandle is opened to a tty.
For example:
Call the above script like this: ./script arg1 arg2 arg3 and you get:#!/usr/bin/perl use strict; use warnings; use feature qw( say ); use File::Basename; my $iam = basename($0); if (-t *STDIN) { my $nargs = @ARGV; say "Script '$iam' called from a terminal with $nargs arg(s):"; for (my $idx = 0; $idx < $nargs; $idx++) { printf " %2d. %s\n", $idx+1, $ARGV[$idx]; } } else { say "Script '$iam' is receiving input from a pipe"; }
If you call it like this, instead: echo Pipe to script | ./script then you'll get this:Script 'script' called from a terminal with 3 arg(s): 1. arg1 2. arg2 3. arg3
In the latter case, you could then do:Script 'script' is receiving input from a pipe
or similar, to handle the piped data as you desire.while (<STDIN>) { say "Got input: $_"; }
In Section
Seekers of Perl Wisdom