When you 'use IO::file' it checks to see if the there as a variable available from 'File::Temp' before it defines &O_CREAT then the ternary if provides out put the line below is my proof if this $perl -e 'use IO::File; use File::Temp qw(tempfile); print defined &O_CREAT ? "yes\n" : "no\n"' no Max