fileno is 2
fileno is 2
That's all, folks!
####
sub new {
die "$0: main::new() sub called\n";
}
sub Class {
die "$0: main::Class() sub called\n";
}
### PICK EXACTLY ONE OF:
#1# local *new ;
#2# local *new = Class new ;
#3# local *new = Class->new() ;
#4# local *new = Class::->new() ;
#5# local *new = new Class ;
#6# local *new = new Class:: ;
### PICK EXACTLY ONE OF:
#1# open( new, "> &=STDERR") || die;
#2# open( new, "> &STDERR") || die;
#3# open( new, ">& STDERR") || die;
#4# open( new, ">&", *STDERR) || die;
#5# open( new, ">&=STDERR") || die;
#6# open(*new, ">&=STDERR") || die;
#7# open(*new, ">&", *STDERR) || die;
my $fd = fileno(*new) // die "no fileno";
die "wrong fileno" unless $fd == 2;
my $output = "fileno is $fd\n";
syswrite(*main::STDOUT, $output, length($output));
### PICK EXACTLY ONE OF:
#1# (print new $output ) || die;
#2# (print "new" $output ) || die;
#3# (print *new $output ) || die;
#4# (print ::new $output ) || die;
#5# (print {*new} $output ) || die;
### PICK EXACTLY ONE OF:
#1# close( new ) ? done() : die "can't close new: $!";
#2# close( new::) ? done() : die "can't close new: $!";
#3# close( "new" ) ? done() : die "can't close new: $!";
#4# close( *new ) ? done() : die "can't close new: $!";
#5# close( ::new ) ? done() : die "can't close new: $!";
#6# close(*::new ) ? done() : die "can't close new: $!";
sub done {
print "That's all, folks!\n";
}
package Class;
sub new {
require "IO/Handle.pm";
return IO::Handle::->new();
}
####
print OUTPUT while ;
####
$op = shift() || die;
for (@ARGV) {
$was = $_;
eval $op; die if $@;
rename($was, $_) || die "rename: $!" unless $was eq $_;
}
####
sub fhbits {
my(@fhlist) = split(' ',$_[0]);
my($bits);
for (@fhlist) {
vec($bits,fileno($_),1) = 1;
}
$bits;
}
$rin = fhbits('STDIN TTY SOCK');
####
sub fhbits {
my @fhlist = split(" ", $_[0]);
my $bits ;
for (@fhlist) {
vec($bits, fileno($_), 1) = 1;
}
return $bits;
}
$rin = fhbits(*STDIN, *TTY, *SOCK);
####
no strict; no warnings; no less tricksy;
foo(lish);
his::bar(tab);
silly->stuff;
come on, please give up;
package UNIVERSAL;
sub AUTOLOAD { print "I am masquerading as $AUTOLOAD(@_)\n" }