#!/usr/bin/perl -- use strict; use warnings; eval { STDOUT->print( "can print ", UNIVERSAL::can( \*STDOUT, 'print' ), "\n" ); 1; } or print "$@\n"; require IO::Handle; print "can print ", STDOUT->can('print') || '', "\n"; print "can print ", *STDOUT{IO}->can('print'), "\n"; __END__ Can't locate object method "print" via package "IO::Handle" at - line 7. can print can print CODE(0x188ae88)