<8----- package mypack; use Data::Dumper; sub wrstr { print Dumper(\@_); my ($fd, $str) = @_; print $fd "$str\n"; } 1; package main; use Data::Dumper; sub wrstr { print Dumper(\@_); my ($fd, $str) = @_; print $fd "$str\n"; } open(FD,">","dummy"); wrstr(FD,"12345"); mypack::wrstr(FD,"12345"); close FD; __END__ $VAR1 = [ 'FD', '12345' ]; $VAR1 = [ 'FD', '12345' ]; While it seems that you are passing file handles to the wrstr functions, perl is actually passing the *string* "FD" to those functions. In the main package this isn't a problem for perl; perl treats the string FD as a symbolic reference. Since there is a file handle in that package (file handles are local to the package in which they are declared) perl is able to resolve the reference. In the 'mypack' package, however, there is no FD handle, so perl cannot resolve it to a file handle. Since warnings are not turned on, perl fails quietly. You can fix the problem by using a variable to hold a _reference_ to the file handle: open(my $fd, ">", "dummy"); wrstr($fd, "12345"); mypack::wrstr($fd, "12345"); close $fd; This is arguably the better approach anyway because it ties the file handle to a lexical variable. When the variable goes out of scope, the reference count on the file handle goes to zero, so the file handle is closed automatically. Randy. [allowsmilie] => 1 [showsignature] => 0 [ipaddress] => [iconid] => 0 [visible] => 1 [attach] => 0 [infraction] => 0 [reportthreadid] => 0 [isusenetpost] => 1 [msgid] => <40F63769.4060102@thepierianspring.org> [ref] => <20040715091348.0000431f.cialdi@firenze.net> [htmlstate] => on_nl2br [postusername] => Randy [ip] => ml-perl@thepier [isdeleted] => 0 [usergroupid] => [membergroupids] => [displaygroupid] => [password] => [passworddate] => [email] => [styleid] => [parentemail] => [homepage] => [icq] => [aim] => [yahoo] => [msn] => [skype] => [showvbcode] => [showbirthday] => [usertitle] => [customtitle] => [joindate] => [daysprune] => [lastvisit] => [lastactivity] => [lastpost] => [lastpostid] => [posts] => [reputation] => [reputationlevelid] => [timezoneoffset] => [pmpopup] => [avatarid] => [avatarrevision] => [profilepicrevision] => [sigpicrevision] => [options] => [akvbghsfs_optionsfield] => [birthday] => [birthday_search] => [maxposts] => [startofweek] => [referrerid] => [languageid] => [emailstamp] => [threadedmode] => [autosubscribe] => [pmtotal] => [pmunread] => [salt] => [ipoints] => [infractions] => [warnings] => [infractiongroupids] => [infractiongroupid] => [adminoptions] => [profilevisits] => [friendcount] => [friendreqcount] => [vmunreadcount] => [vmmoderatedcount] => [socgroupinvitecount] => [socgroupreqcount] => [pcunreadcount] => [pcmoderatedcount] => [gmmoderatedcount] => [assetposthash] => [fbuserid] => [fbjoindate] => [fbname] => [logintype] => [fbaccesstoken] => [newrepcount] => [vbseo_likes_in] => [vbseo_likes_out] => [vbseo_likes_unread] => [temp] => [field1] => [field2] => [field3] => [field4] => [field5] => [subfolders] => [pmfolders] => [buddylist] => [ignorelist] => [signature] => [searchprefs] => [rank] => [icontitle] => [iconpath] => [avatarpath] => [hascustomavatar] => 0 [avatardateline] => [edit_userid] => [edit_username] => [edit_dateline] => [edit_reason] => [hashistory] => [pagetext_html] => [hasimages] => [signatureparsed] => [sighasimages] => [sigpic] => [sigpicdateline] => [sigpicwidth] => [sigpicheight] => [postcount] => 2 [attachments] => [allattachments] => ) -->