From jbrooks4 at austin.rr.com Wed Sep 1 08:40:16 2004 From: jbrooks4 at austin.rr.com (Jeremy Brooks) Date: Wed Sep 1 08:26:44 2004 Subject: APM: Net::FTP recieves file but still reaches timeout without saving In-Reply-To: <1093978940.12780.23.camel@willow.mobile-o.com> References: <1093978940.12780.23.camel@willow.mobile-o.com> Message-ID: <1094046016.22706.3.camel@willow.mobile-o.com> Well, the problem was zone-alarm running on the server. That begs the question, why did ncftp work just fine? On Tue, 2004-08-31 at 14:02, Jeremy Brooks wrote: > good afternoon, > > I've written a simple test script (see inline) that connects, > authenticates and gets a file from a Microsoft IIS 5.0 ftp server. > In about 19 out of twenty executions the script timesout before actually > getting the file. However, without fail, I see the number > of bytes received over the passive mode data connection. > The file's size is 5169 bytes. > > ----------------Netstat -an --inet-------------------- > tcp 0 25 65.16.122.206:33723 207.200.10.26:21 ESTABLISHED > tcp 5170 0 65.16.122.206:33724 207.200.10.26:1577 CLOSE_WAIT > ------------------------------------------------------ > > > I've traced the time out to Net::Cmd.pm line 269 where we use select to > block on the handle used to read data from the server. > > I've enabled passive connections in Net::FTP using FTP_PASSIVE, pasv(), > and Passive=>1. All these methods seem to work in that the passive > data connection is established back the server but it's as if Net::FTP > just doesn't do anything with it after the server sends the file. > I've also tried rasing the timeout to 6 minutes which changed nothing > but how long it took me to trouble shoot. When things work, the > transfer takes on a couple of seconds so I set Timeout=>10. > > ncftp works 100% of the time from the same client machine to the same > server. > > Have you any ideas on what's happening here and why it works > occasionally? > > > the script: > ----------------------------------------------- > #!/usr/bin/perl > > use Net::FTP; > > $ftp = Net::FTP->new("data.teledynamics.com",Hash=>\*STDOUT, > Debug=>1,Passive=>1,Timeout=>10) > or die "could not make handle\n"; > > $ftp->login("user","pass") or die "could not login\n"; > $ftp->binary(); > > ### Here's where we hang > $ftp->get("/images/ZES120.jpg") or die "could not get file\n"; > > > $ftp->quit; > > print "OK ", $ftp->message,"\n"; > --------------------------------------------------------------- > > > thanks in advance! > > Jeremy Brooks > > > > > > > _______________________________________________ > Austin mailing list > Austin@mail.pm.org > http://mail.pm.org/mailman/listinfo/austin From wwalker at bybent.com Wed Sep 1 10:04:30 2004 From: wwalker at bybent.com (Wayne Walker) Date: Thu Sep 2 19:37:59 2004 Subject: APM: Net::FTP recieves file but still reaches timeout without saving In-Reply-To: <1094046016.22706.3.camel@willow.mobile-o.com> References: <1093978940.12780.23.camel@willow.mobile-o.com> <1094046016.22706.3.camel@willow.mobile-o.com> Message-ID: <20040901150430.GB14859@bybent.com> On Wed, Sep 01, 2004 at 08:40:16AM -0500, Jeremy Brooks wrote: > Well, the problem was zone-alarm running on the server. > That begs the question, why did ncftp work just fine? Probably ncftp defaults to passive mode ftp and Net::FTP defaults to active (or vice versa, I can never get the modes straight). One is considered a serious security problem, the other a possible denial of service attack. -- Wayne Walker wwalker@bybent.com Do you use Linux?! http://www.bybent.com Get Counted! http://counter.li.org/ Perl - http://www.perl.org/ Perl User Groups - http://www.pm.org/ Jabber: wwalker@jabber.ntrc.net AIM: lwwalkerbybent IRC: wwalker on freenode.net From jbrooks4 at austin.rr.com Fri Sep 3 15:43:13 2004 From: jbrooks4 at austin.rr.com (Jeremy Brooks) Date: Fri Sep 3 15:29:37 2004 Subject: APM: Net::FTP recieves file but still reaches timeout without saving In-Reply-To: <20040901150430.GB14859@bybent.com> References: <1093978940.12780.23.camel@willow.mobile-o.com> <1094046016.22706.3.camel@willow.mobile-o.com> <20040901150430.GB14859@bybent.com> Message-ID: <1094244193.32660.6.camel@willow.mobile-o.com> Thanks Wayne, I'm using Passive with Net::FTP. I have, in fact, turned on passive using all three methods provided in the Net::FTP docs. (see the original post). It turns out that the firewall on the server was broken. The problem has been resolved. However, we still don't know why ncftp worked and Net::FTP didn't. thanks for the help, Jeremy On Wed, 2004-09-01 at 10:04, Wayne Walker wrote: > On Wed, Sep 01, 2004 at 08:40:16AM -0500, Jeremy Brooks wrote: > > Well, the problem was zone-alarm running on the server. > > That begs the question, why did ncftp work just fine? > > Probably ncftp defaults to passive mode ftp and Net::FTP defaults to > active (or vice versa, I can never get the modes straight). One is > considered a serious security problem, the other a possible denial of > service attack. From mlehmann at marklehmann.com Fri Sep 3 15:56:37 2004 From: mlehmann at marklehmann.com (Mark Lehmann) Date: Fri Sep 3 15:53:06 2004 Subject: APM: Net::FTP recieves file but still reaches timeout without saving In-Reply-To: <1094244193.32660.6.camel@willow.mobile-o.com> References: <1093978940.12780.23.camel@willow.mobile-o.com> <1094046016.22706.3.camel@willow.mobile-o.com> <20040901150430.GB14859@bybent.com> <1094244193.32660.6.camel@willow.mobile-o.com> Message-ID: <48775.66.45.70.241.1094244997.squirrel@www.marklehmann.com> I suspect that the zone-alarm can detect certain types of FTP clients and it lets the ones it thinks are safe work and blocks the others. -- Mark Lehmannn mlehmann@marklehmann.com - mobile 512 689-7705 > Thanks Wayne, > I'm using Passive with Net::FTP. I have, in fact, turned on passive > using all three methods provided in the Net::FTP docs. (see the > original post). It turns out that the firewall on the server was > broken. The problem has been resolved. However, we still don't know > why ncftp worked and Net::FTP didn't. > > thanks for the help, > Jeremy > > On Wed, 2004-09-01 at 10:04, Wayne Walker wrote: >> On Wed, Sep 01, 2004 at 08:40:16AM -0500, Jeremy Brooks wrote: >> > Well, the problem was zone-alarm running on the server. >> > That begs the question, why did ncftp work just fine? >> >> Probably ncftp defaults to passive mode ftp and Net::FTP defaults to >> active (or vice versa, I can never get the modes straight). One is >> considered a serious security problem, the other a possible denial of >> service attack. > > _______________________________________________ > Austin mailing list > Austin@mail.pm.org > http://mail.pm.org/mailman/listinfo/austin From dbii at interaction.net Fri Sep 10 08:41:04 2004 From: dbii at interaction.net (David Bluestein II) Date: Fri Sep 10 08:41:07 2004 Subject: APM: Next Weeks Meeting Topic-Suggestion and Volunteers? Message-ID: <20040910134104.GN1171@interaction.net> Next week we're scheduled for our monthly meeting, and Ian has been great in reserving the room, projector, and internet access for us up at ARL (see website for directions). At the last meeting, we tossed around some ideas, but didn't have any definite discussion. Does anyone have something they want to present on? Or heard presented too? If not, I can present on FormBuilder, Data::Grouper and SQL::Abstract, which allows you to create a webform, tie to database, and display information using 3-4 modules without having to do a lot of code. Basically, create a form definition (including self-validation) and then you can easily insert into a database or retrieve data from it in tabular form. David -- David H. Bluestein II President & Lead Developer dbii@interaction.net ii, inc. http://www.interaction.net -- Specializing in Designing Interactive Database Driven Websites -- From jbrooks4 at austin.rr.com Fri Sep 10 08:57:41 2004 From: jbrooks4 at austin.rr.com (Jeremy Brooks) Date: Fri Sep 10 08:56:01 2004 Subject: APM: RE: Next Weeks Meeting Topic-Suggestion and Volunteers? In-Reply-To: <20040910134104.GN1171@interaction.net> Message-ID: <004201c4973e$24096ae0$641ea8c0@THEDOGHOUSE.HMFIC> I'd like to learn about SQL::Abstract. By the way, did I miss the YAML presentation? -Jeremy Brooks -----Original Message----- From: austin-bounces@mail.pm.org [mailto:austin-bounces@mail.pm.org]On Behalf Of David Bluestein II Sent: Friday, September 10, 2004 8:41 AM To: austin@mail.pm.org Subject: APM: Next Weeks Meeting Topic-Suggestion and Volunteers? Next week we're scheduled for our monthly meeting, and Ian has been great in reserving the room, projector, and internet access for us up at ARL (see website for directions). At the last meeting, we tossed around some ideas, but didn't have any definite discussion. Does anyone have something they want to present on? Or heard presented too? If not, I can present on FormBuilder, Data::Grouper and SQL::Abstract, which allows you to create a webform, tie to database, and display information using 3-4 modules without having to do a lot of code. Basically, create a form definition (including self-validation) and then you can easily insert into a database or retrieve data from it in tabular form. David -- David H. Bluestein II President & Lead Developer dbii@interaction.net ii, inc. http://www.interaction.net -- Specializing in Designing Interactive Database Driven Websites -- _______________________________________________ Austin mailing list Austin@mail.pm.org http://mail.pm.org/mailman/listinfo/austin Protected by Polesoft Lockspam http://www.polesoft.com/refer.html From dbii at interaction.net Fri Sep 10 08:59:44 2004 From: dbii at interaction.net (David Bluestein II) Date: Fri Sep 10 08:59:47 2004 Subject: APM: Re: Next Weeks Meeting Topic-Suggestion and Volunteers? In-Reply-To: <004201c4973e$24096ae0$641ea8c0@THEDOGHOUSE.HMFIC> References: <20040910134104.GN1171@interaction.net> <004201c4973e$24096ae0$641ea8c0@THEDOGHOUSE.HMFIC> Message-ID: <20040910135944.GP1171@interaction.net> No, I forget who was going to do YAML. I think they wanted to do it in October or November to have time to work with it some. David On Fri, Sep 10, 2004 at 08:57:41AM -0500, Jeremy Brooks wrote: > I'd like to learn about SQL::Abstract. By the way, did I miss the YAML > presentation? > > -Jeremy Brooks > > -----Original Message----- > From: austin-bounces@mail.pm.org [mailto:austin-bounces@mail.pm.org]On > Behalf Of David Bluestein II > Sent: Friday, September 10, 2004 8:41 AM > To: austin@mail.pm.org > Subject: APM: Next Weeks Meeting Topic-Suggestion and Volunteers? > > > Next week we're scheduled for our monthly meeting, and Ian has been great in > reserving the room, projector, and internet access for us up at ARL (see > website for directions). > > At the last meeting, we tossed around some ideas, but didn't have any > definite discussion. Does anyone have something they want to present on? Or > heard presented too? > > If not, I can present on FormBuilder, Data::Grouper and SQL::Abstract, which > allows you to create a webform, tie to database, and display information > using 3-4 modules without having to do a lot of code. Basically, create a > form definition (including self-validation) and then you can easily insert > into a database or retrieve data from it in tabular form. > > David > > -- > David H. Bluestein II > President & Lead Developer dbii@interaction.net > ii, inc. http://www.interaction.net > -- Specializing in Designing Interactive Database Driven Websites -- > _______________________________________________ > Austin mailing list > Austin@mail.pm.org > http://mail.pm.org/mailman/listinfo/austin > > > > > Protected by Polesoft Lockspam > http://www.polesoft.com/refer.html -- David H. Bluestein II President & Lead Developer dbii@interaction.net ii, inc. http://www.interaction.net -- Specializing in Designing Interactive Database Driven Websites -- From mlehmann at marklehmann.com Fri Sep 10 10:04:30 2004 From: mlehmann at marklehmann.com (Mark Lehmann) Date: Fri Sep 10 10:00:31 2004 Subject: APM: Next Weeks Meeting Topic-Suggestion and Volunteers? In-Reply-To: <20040910134104.GN1171@interaction.net> References: <20040910134104.GN1171@interaction.net> Message-ID: <44842.66.45.70.241.1094828670.squirrel@www.marklehmann.com> Spam Assassin. Really I just want to present on something were I can legitimately say "ass" twice without being impolite. -- Mark Lehmannn mlehmann@marklehmann.com - mobile 512 689-7705 > Next week we're scheduled for our monthly meeting, and Ian has been > great in reserving the room, projector, and internet access for us up at > ARL (see website for directions). > > At the last meeting, we tossed around some ideas, but didn't have any > definite discussion. Does anyone have something they want to present on? > Or heard presented too? > > If not, I can present on FormBuilder, Data::Grouper and SQL::Abstract, > which allows you to create a webform, tie to database, and display > information using 3-4 modules without having to do a lot of code. > Basically, create a form definition (including self-validation) and then > you can easily insert into a database or retrieve data from it in > tabular form. > > David > > -- > David H. Bluestein II > President & Lead Developer dbii@interaction.net > ii, inc. http://www.interaction.net > -- Specializing in Designing Interactive Database Driven Websites -- > _______________________________________________ > Austin mailing list > Austin@mail.pm.org > http://mail.pm.org/mailman/listinfo/austin From parkerm at pobox.com Fri Sep 10 10:28:19 2004 From: parkerm at pobox.com (Michael Parker) Date: Fri Sep 10 10:28:24 2004 Subject: APM: Next Weeks Meeting Topic-Suggestion and Volunteers? In-Reply-To: <44842.66.45.70.241.1094828670.squirrel@www.marklehmann.com> References: <20040910134104.GN1171@interaction.net> <44842.66.45.70.241.1094828670.squirrel@www.marklehmann.com> Message-ID: <20040910152818.GA16128@mail.herk.net> On Fri, Sep 10, 2004 at 10:04:30AM -0500, Mark Lehmann wrote: > Spam Assassin. > What kind of a talk on SpamAssassin would people like to have? Something general? Something about the upcoming 3.0.0 release? I'm presenting a talk at ApacheCon in November on "Storing SpamAssassin User Data in SQL Databases," it might be a good time for me to practice that talk. It will mostly cover the new Bayes/AWL data in SQL functionality that is being added for the 3.0.0 release but also putting user prefs in SQL. It would have to be October, I'm not done with the talk yet. Michael SpamAssassin Developer From ian at remmler.org Fri Sep 10 10:41:03 2004 From: ian at remmler.org (Ian Remmler) Date: Fri Sep 10 10:41:08 2004 Subject: APM: Re: Next Weeks Meeting Topic-Suggestion and Volunteers? In-Reply-To: <20040910135944.GP1171@interaction.net> References: <20040910134104.GN1171@interaction.net> <004201c4973e$24096ae0$641ea8c0@THEDOGHOUSE.HMFIC> <20040910135944.GP1171@interaction.net> Message-ID: <20040910154103.GA4740@remmler.org> On Fri, Sep 10, 2004 at 08:59:44AM -0500, David Bluestein II wrote: > No, I forget who was going to do YAML. I think they wanted to > do it in October or November to have time to work with it > some. > > On Fri, Sep 10, 2004 at 08:57:41AM -0500, Jeremy Brooks wrote: > > I'd like to learn about SQL::Abstract. By the way, did I miss the YAML > > presentation? I was the YAML volunteer. If we don't have a full lineup for Wednesday I could talk a bit about YAML. There's really not much to it (which is a good thing), so it wouldn't take too long. Or I could do it next month. I also started looking at Maypole, the web app framework. I could probably talk about it in the not-so-distant furure (i.e. not this meeting :) -- Go banana! From dbii at interaction.net Fri Sep 10 10:56:49 2004 From: dbii at interaction.net (David Bluestein II) Date: Fri Sep 10 10:56:52 2004 Subject: APM: Meeting Topics Schedule--DRAFT Message-ID: <20040910155649.GQ1171@interaction.net> Wow, lots of topics. How about the following (if good with Michael and Ian--thanks for the volunteering): Sept: Ian on YAML, David on SQL::Abstract et al. Oct: Michael on Spamassassin (we'll need to see if we let Mark come to this one) Nov: Ian on Maypole (that gives you two months) Dec: Christmas Dinner Jan: TBD Any other topics? Wayne's boss (I forget his name) wanted a presentation on the Windows .exe maker, which is probably a 15-30 minute talk. Maybe we can add that on somewhere? David -- David H. Bluestein II President & Lead Developer dbii@interaction.net ii, inc. http://www.interaction.net -- Specializing in Designing Interactive Database Driven Websites -- From chris at chrisbaker.net Fri Sep 10 22:30:11 2004 From: chris at chrisbaker.net (Christopher Baker) Date: Fri Sep 10 22:30:05 2004 Subject: APM: Next Weeks Meeting Topic-Suggestion and Volunteers? In-Reply-To: <20040910152818.GA16128@mail.herk.net> References: <44842.66.45.70.241.1094828670.squirrel@www.marklehmann.com> <20040910152818.GA16128@mail.herk.net> Message-ID: <20040910222736.4A65.CHRIS@chrisbaker.net> When and where is the meeting? Chris ============================================================ "I'm not gonna go up onstage and dress different. Britney Spears goes up onstage and dresses like a showgirl. She's not being herself up there because she's dancing like a ho." --Avril Lavigne ============================================================ Chris Baker -- www.chrisbaker.net chris@chrisbaker.net, chrisbaker@iname.com, cbaker2@columbus.rr.com "When you stop growing, you start dying." From dbii at interaction.net Mon Sep 13 08:38:13 2004 From: dbii at interaction.net (David Bluestein II) Date: Mon Sep 13 08:38:15 2004 Subject: APM: Meeting Annoucement: YAML and SQL::Abstract Message-ID: <20040913133813.GE8929@interaction.net> The APM Meeting this month is coming up this Wednesday. Ian is going to cover YAML, and I'm going to cover SQL::Abstract (and a few related modules like FormBuilder that help create quick database calls and displays). Meeting will be at 7:00 pm at ARL, those who wish can join us at Pok-e Jo's in the Arboretum at 5:45 for dinner. David -- David H. Bluestein II President & Lead Developer dbii@interaction.net ii, inc. http://www.interaction.net -- Specializing in Designing Interactive Database Driven Websites -- From tom.bakken at tx.usda.gov Fri Sep 17 11:06:51 2004 From: tom.bakken at tx.usda.gov (Bakken, Tom - Temple, TX) Date: Fri Sep 17 11:06:54 2004 Subject: APM: Process/System questions Message-ID: Some time ago I posted a problem I was having with a script that was supposed to restart workstations but stalled when it hit certain PCs. I used Bill Raty's suggestion of the spawn subroutine. I wasn't able to get it to work and put it aside until I recently had more time and now seem to have gotten it running. Shutdown.exe has a known bug where if the workstation that's to be shut down is at the Windows login screen, it will lock up. Bill's solution works around that problem by waiting 20 seconds and then continuing if the workstation stalls. Unfortunately, the system command returns a 0 exit status for success even if shutdown.exe stalls. Is there any way to capture the output from shutdown.exe which is "the device is not ready"? Either that or if the script does wait 20 seconds and fails, can I test for that somehow? I appreciate the help. ############# #!perl -w # Purpose: Create a list of workstations, restart them and store results in log file # Notes: Portablilty: shutdown switch to abort programs is /C on Windows 2000 and /F on XP use strict; use Text::ParseWords; # Help for comma separated data use POSIX 'strftime'; # Load function use Time::Local; # Create list of servers to analyze: my $LogFile = 'WorkstationRestartLog.txt'; unless (open LOGFILE, "> $LogFile") { die "Cannot open $LogFile: $!"; } my $LocalServer = 'MyServer'; my $Domain = 'MyDomain'; my $ServerFile = 'c:/bin/reboot/csv.log'; my $StateAbbrev = 'TX'; my @ListOfWorkstations = (); my @MachineNameAndDomain = (); GetWorkstations(\@ListOfWorkstations, $Domain, $LocalServer, $ServerFile, $StateAbbrev); my $Status; WorkstationRestart(\@ListOfWorkstations); # Restart the list of workstations ###################### Subroutines ######################################## sub GetHumanTime { my $TimeStamp = strftime("%m/%d/%Y %I:%M %p", localtime(time)); return $TimeStamp; } sub spawn (&) { my ($CodeRef) = @_; my $pid; unless ($pid = fork) { $CodeRef->(); # Start the child process. Make sure it exits too! exit; } $SIG{CHLD} = "IGNORE"; # Make sure we don't have any ghost processes. Have perl do the waitpid return $pid; } sub GetWorkstations { my $ListOfWorkstationsArrayRef = shift; my $Domain = shift; my $LocalServer = shift; my $ServerFile = shift; my $StateAbbrev = shift; my $Status = system "csvde -f $ServerFile \ -s $LocalServer.$Domain.one.usda.gov \ -d \"ou=$StateAbbrev, dc=$Domain, dc=one, dc=usda, dc=gov\" \ -p subtree \ -r \"(&(Objectcategory=Computer)(objectClass=computer))\" -l \"name, dNSHostName, description, operatingsystem, whencreated, whenchanged\""; warn "Active Directory query failed: $!" unless $Status == 0; unless (open WORKSTATIONS, "$ServerFile") { die "Cannot open $ServerFile: $!"; } while() { chomp; # Remove ctrl+M s/\000//g; # Remove null padding my @Fields = parse_csv($_); my ($DN, $Description, $DnsHostName, $OS, $Name, $WhenChanged, $WhenCreated) = @Fields; ##print "$Name = \$Name\n"; push @{$ListOfWorkstationsArrayRef}, join '|', $Name, $Description, $DnsHostName, $OS, $WhenChanged, $WhenCreated; } } # End GetWorkstationUptime subroutine sub WorkstationRestart { # Copy files to server using a list of machine names my $MachineNameAndDomainArrayRef = shift; my $Count = 0; my $Error = 0; my $StartTime = GetHumanTime(); print LOGFILE " Start: Computer Restart Log: $StartTime\n\n"; my $i = (); foreach $i (sort @{$MachineNameAndDomainArrayRef}) { unless (open LOGFILE, ">> $LogFile") { # Close write filehandle and open append die "Cannot open $LogFile: $!"; } $Count++; my ($MachineName, $Domain) = split /\|/, $i; #print "\$MachineName = $MachineName\n"; next unless $MachineName; # Skip blank records print "$Count: Attempting Reboot on: $MachineName\n"; $Status = system "uptime \\\\$MachineName > /nul"; unless ($Status == 0) { print LOGFILE "$Count ALERT!!! Could not contact $MachineName. Error: $?\n"; print "$Count ALERT!!! Could not contact $MachineName. Error: $?\n"; $Error++; next; } print "Parent PID: $$\n"; ######### my $ChildPid = spawn { $Status = system "shutdown.exe -m \\\\$MachineName -F -R -T 90"; # Windows XP ### $Status = system "shutdown.exe \\\\$MachineName /C /Y /R /T:90"; # Windows 2K ### $Status = system "uptime \\\\$MachineName > /nul"; unless ($Status == 0) { print LOGFILE "$Count ALERT!!! Could not restart $MachineName. Error: $?\n"; print "$Count ALERT!!! Could not restart $MachineName. Error: $?\n"; $Error++; next; } my $TimeStamp = GetHumanTime(); print LOGFILE "$Count $MachineName successfully rebooted at $TimeStamp\n"; print "$Count $MachineName successfully rebooted at $TimeStamp\n"; }; # Don't forget the semicolon here!!!! ########### sleep 20; # Give uptime 20 seconds to run print "Child pid: $ChildPid\n"; kill TERM => $ChildPid; # Kill after that amount of time } # End server loop my $EndTime = GetHumanTime(); print LOGFILE "\n $Count Computer restarts attempted. $Error Failed.\n\n" . " End: Computer Restart Log: $EndTime\n" . '=' x 50 . "\n\n"; } # End WorkstationRestart subroutine sub parse_csv { return quotewords(",", 0, $_[0]); } ################### Tom Bakken From ezra at jdba.org Fri Sep 17 11:42:39 2004 From: ezra at jdba.org (ezra pagel) Date: Fri Sep 17 11:42:53 2004 Subject: APM: Process/System questions In-Reply-To: References: Message-ID: <414B13FF.4020000@jdba.org> Using backticks/qx instead of system() will let you capture standard output; you can redirect stderr if you need it. You can still check $? for the system exit code. Bakken, Tom - Temple, TX wrote: >Some time ago I posted a problem I was having with a script that was >supposed to restart workstations but stalled when it hit certain PCs. I >used Bill Raty's suggestion of the spawn subroutine. I wasn't able to >get it to work and put it aside until I recently had more time and now >seem to have gotten it running. > >Shutdown.exe has a known bug where if the workstation that's to be shut >down is at the Windows login screen, it will lock up. Bill's solution >works around that problem by waiting 20 seconds and then continuing if >the workstation stalls. Unfortunately, the system command returns a 0 >exit status for success even if shutdown.exe stalls. Is there any way >to capture the output from shutdown.exe which is "the device is not >ready"? Either that or if the script does wait 20 seconds and fails, >can I test for that somehow? > > -- ------------------------------------------------------- Ezra Pagel, Software Engineer Austin Logistics, Inc. Office: 512-651-5644 Mobile: 512-694-1107 epagel@austinlogistics.com ezra@cpan.org ------------------------------------------------------- The information in this Internet email is confidential and may be legally privileged. It is intended solely for the addressee. Access to this Internet email by anyone else is unauthorized. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or any action omitted in reliance on it, is prohibited and may be unlawful. When addressed to our clients any opinions or advice contained in this Internet email are subject to the terms and conditions expressed in any applicable governing Austin Logistics' contract terms. From jbrooks4 at austin.rr.com Fri Sep 17 12:50:33 2004 From: jbrooks4 at austin.rr.com (Jeremy Brooks) Date: Fri Sep 17 12:38:23 2004 Subject: APM: RPC on windows Message-ID: <1095443433.12859.26.camel@willow.mobile-o.com> Tom Bakken's last post got me thinking about the possibilities of remote administration of Windows machines. To what extent can one administer Windows machines from a remote client, be it Linux,Unix or Windows? Is it possible, assuming the correct permissions/credentials are in place, to do remote installation of software or file uploads? Perlifying something akin to Symantec Corporate Edition's ultra-nifty remote client installation functionality in my own software would be very handy! I'm not very familiar with Perl/CPAN code for Windows but I'm an experienced Perlite so simply pointing me in the right direction would be helpful enough! thanks, Jeremy Brooks From jbrooks4 at austin.rr.com Tue Sep 21 10:40:52 2004 From: jbrooks4 at austin.rr.com (Jeremy Brooks) Date: Tue Sep 21 10:28:33 2004 Subject: APM: RE: RPC on windows In-Reply-To: <297203B1AD107A438D2616D3A8E9B382E0FCAB@dsae2k.dsad.ad.tamu.edu> References: <297203B1AD107A438D2616D3A8E9B382E0FCAB@dsae2k.dsad.ad.tamu.edu> Message-ID: <1095781252.9707.12.camel@willow.mobile-o.com> thanks, I'll check his site out. Yes, I have some modules you'd probably be interested in. My company (www.mobile-o.com) developed a set of MS Exchange interaction modules that use WebDAV to bring Outlook like functionality to Perl. They've only been tested on Linux/Perl 5.8 but with Exchange 2000 and 2003. I've written a website for hand held devices that uses these modules web email access that brings pop and Exchange accounts together. I plan on getting the package onto CPAN toward the end of the year, or sooner. The package includes modifications to HTTP::DAV and several MS Exchange specific modules that currently reside in Mobileo::Exchange. The location of the latter will need to be changed and may end up in HTTP::Exchange,DAV::Exchange, or somewhere like that. If you'd like to work on testing and/or adding to them I'd be willing to upload them this month. -Jeremy Brooks On Mon, 2004-09-20 at 10:49, Fluhmann, Jeremy wrote: > Jeremy, > > All of my Perl experience is on Windows. Dave Roth has a good > Perl/Win32 site with several scripts available for download. He has > also writen a couple of books on the subject. I've used his modules in > some of my Windows Adminstration scripts. > > http://www.roth.net/ > > I used some of his modules on my 'new web account' web page for work. I > input a new username and description, and the user account, user's > folder (with specific permissions), virtual directory, and the FTP > account are all created if they don't already exist. I'm still looking > into remote installation and update possibilities. > > Since all of my Perl experience is in a Windows environment, I'm very > interested in the subject as well as extending my knowledge. So, please > let me know if you come across some good places or have some good ideas > about Perl and Windows. > > Thanks, > Jeremy Fluhmann > Microcomputer Specialist > Department of Student Activities > Texas A&M University > 979-458-4649 > jeremy@stuact.tamu.edu > > > -----Original Message----- > From: austin-bounces@mail.pm.org [mailto:austin-bounces@mail.pm.org] On > Behalf Of Jeremy Brooks > Sent: Friday, September 17, 2004 12:51 PM > To: apm > Subject: APM: RPC on windows > > Tom Bakken's last post got me thinking about the possibilities of remote > administration of Windows machines. To what extent can one administer > Windows machines from a remote client, be it Linux,Unix or Windows? Is > it possible, assuming the correct permissions/credentials are in place, > to do remote installation of software or file uploads? Perlifying > something akin to Symantec Corporate Edition's ultra-nifty remote client > installation functionality in my own software would be very handy! > > I'm not very familiar with Perl/CPAN code for Windows but I'm an > experienced Perlite so simply pointing me in the right direction would > be helpful enough! > > thanks, > Jeremy Brooks > > _______________________________________________ > Austin mailing list > Austin@mail.pm.org > http://mail.pm.org/mailman/listinfo/austin > > From michalk at awpi.com Tue Sep 21 12:52:12 2004 From: michalk at awpi.com (Brian Michalk) Date: Tue Sep 21 12:52:38 2004 Subject: APM: arrays and hashes In-Reply-To: <1095443433.12859.26.camel@willow.mobile-o.com> Message-ID: I'm having problems making a hash reference to a 2D array. I would like to get the following output: DB<40> x @res 0 'hello' 1 'there' 2 'world' DB<45> x $self->{'ary'} 0 ARRAY(0x8cfd1f0) 0 'hello' 1 'there' 2 'world' 1 ARRAY(0x8cf2ab0) 0 'hello' 1 'there' 2 'world' 2 ARRAY(0x8cd385c) 0 'hello' 1 'there' 2 'world' One would think one could get it like this: DB<43> push @{$self->{'ary'}}, [@res] DB<43> push @{$self->{'ary'}}, [@res] DB<43> push @{$self->{'ary'}}, [@res] However, the above generates the following: DB<52> x $self->{'ary'} 0 ARRAY(0x8cfc4e8) 0 ARRAY(0x8cfc494) 0 'hello' 1 'there' 2 'world' 1 ARRAY(0x8cfce30) 0 'hello' 1 'there' 2 'world' 2 ARRAY(0x8cfd0d0) 0 'hello' 1 'there' 2 'world' Which is a 3D array, and I can't figure out how to get it to work correctly. From ezra at jdba.org Tue Sep 21 13:18:13 2004 From: ezra at jdba.org (ezra pagel) Date: Tue Sep 21 13:18:44 2004 Subject: APM: arrays and hashes In-Reply-To: References: Message-ID: <41507065.1030505@jdba.org> Brian Michalk wrote: >I'm having problems making a hash reference to a 2D array. > > Sorry, no such thing ;) >I would like to get the following output: > > DB<40> x @res >0 'hello' >1 'there' >2 'world' > > DB<45> x $self->{'ary'} >0 ARRAY(0x8cfd1f0) > 0 'hello' > 1 'there' > 2 'world' >1 ARRAY(0x8cf2ab0) > 0 'hello' > 1 'there' > 2 'world' >2 ARRAY(0x8cd385c) > 0 'hello' > 1 'there' > 2 'world' > >One would think one could get it like this: > DB<43> push @{$self->{'ary'}}, [@res] > DB<43> push @{$self->{'ary'}}, [@res] > DB<43> push @{$self->{'ary'}}, [@res] > > >However, the above generates the following: > DB<52> x $self->{'ary'} >0 ARRAY(0x8cfc4e8) > 0 ARRAY(0x8cfc494) > 0 'hello' > 1 'there' > 2 'world' > 1 ARRAY(0x8cfce30) > 0 'hello' > 1 'there' > 2 'world' > 2 ARRAY(0x8cfd0d0) > 0 'hello' > 1 'there' > 2 'world' > >Which is a 3D array, and I can't figure out how to get it to work correctly. >_______________________________________________ >Austin mailing list >Austin@mail.pm.org >http://mail.pm.org/mailman/listinfo/austin > > Actually, that's still just a 2D array; I think that the debugger lines are throwing you off. Try x $self->{'ary'}->[0][0] From austin.pm at sam-i-am.com Wed Sep 22 13:01:20 2004 From: austin.pm at sam-i-am.com (Sam Foster) Date: Wed Sep 22 13:01:30 2004 Subject: APM: Cookie-less cgi sessions Message-ID: <4151BDF0.3090501@sam-i-am.com> Scanning CGI::Session's perldocs, it looks to rely on http cookies. Is there another module anyone can recommend that gives you options (e.g. adding the session id to the querystring, or a hidden field) or better yet will pick the appropriate or available mechanism invisibly? Sorry my searching has not been exhaustive - I just figured this might be a easy one for someone out there to get me on the right track. Sam From austin.pm at sam-i-am.com Wed Sep 22 13:16:29 2004 From: austin.pm at sam-i-am.com (Sam Foster) Date: Wed Sep 22 13:16:32 2004 Subject: APM: YAML url mappings Message-ID: <4151C17D.6020609@sam-i-am.com> So, after this month's very intersting YAML presentation, I thought I'd give it a whirl with a little 404 handler I'm making. It needs to attempt to lookup a (bad) url, or fragment of the url in a simple old => new hash structure, eg { '/some/old/url.html' => '/new/location/for/url.html', '/old/dir' => '/new/dir' } Having a nice (safe) human editable datafile to store this would be ideal.. a nice spot for YAML I thought. Except the obvious doesn't work: --- /some/old/url.html: /new/location/for/url.html /old/dir: /new/dir it doesn't like '/' as a starting character (or '~,' or '.'. Is it matching with something like /\s*\w+/ ?.. must take a look.) I looked through the YAML perldocs, and the spec and found nothing about illegal or allowed characters that might explain this. Does that make it a bug? Anyone have any thoughts, workarounds or suggestions? Right now, I've prepended 'ROOT' so I get --- ROOT/some/old/url.html: ROOT/new/location/for/url.html which works just fine - and I strip it back off before I return the url to the user... But kind of dirties my data a little. The goal is to keep the data format clean and intuitive, and leave any complexity in the script. I can obviously write my own "parser" or use Config::Auto or something else.. but I've just been telling everyone at work all about YAML and need to not look silly :) thanks, Sam From taylor at codecafe.com Wed Sep 22 13:54:13 2004 From: taylor at codecafe.com (Taylor Carpenter) Date: Wed Sep 22 13:54:23 2004 Subject: APM: Cookie-less cgi sessions In-Reply-To: <4151BDF0.3090501@sam-i-am.com> References: <4151BDF0.3090501@sam-i-am.com> Message-ID: <1095879253.20375.204936116@webmail.messagingengine.com> On Wed, 22 Sep 2004 13:01:20 -0500, "Sam Foster" said: > Scanning CGI::Session's perldocs, it looks to rely on http cookies. Is > there another module anyone can recommend that gives you options (e.g. > adding the session id to the querystring, or a hidden field) or better > yet will pick the appropriate or available mechanism invisibly? > > Sorry my searching has not been exhaustive - I just figured this might > be a easy one for someone out there to get me on the right track. Hello Sam, CGI::Session also supports using query string to pass the session ID. It will do this automatically. >From the page http://search.cpan.org/~sherzodr/CGI-Session-3.95/Session/Tutorial.pm#WHAT_YOU_NEED_TO_KNOW_FIRST It discusses the second argument to CGI::Session. "In this case, the library will try to retrieve the session id from either CGISESSID cookie or CGISESSID CGI parameter (query string)" Hope this helps. On a side note... It is very easy to extend CGI::Session for storage methods and session ID generation. Taylor From ian at remmler.org Wed Sep 22 15:09:45 2004 From: ian at remmler.org (Ian Remmler) Date: Wed Sep 22 15:09:52 2004 Subject: APM: YAML url mappings In-Reply-To: <4151C17D.6020609@sam-i-am.com> References: <4151C17D.6020609@sam-i-am.com> Message-ID: <20040922200945.GA7139@remmler.org> On Wed, Sep 22, 2004 at 01:16:29PM -0500, Sam Foster wrote: > it doesn't like '/' as a starting character (or '~,' or '.'. Is it > matching with something like /\s*\w+/ ?.. must take a look.) > > I looked through the YAML perldocs, and the spec and found nothing about > illegal or allowed characters that might explain this. Does that make it > a bug? Anyone have any thoughts, workarounds or suggestions? I just installed YAML::Parser::Syck, and it worked just fine with that. I'm guessing it's a bug in YAML.pm, but I haven't looked at it to find it. I think the only special characters at the start of an entry are !, &, and *. YAML.pm does work if you quote, e.g. --- '/old/dir': '/new/dir' ... - Ian. -- Go banana! From tom.bakken at tx.usda.gov Thu Sep 23 09:21:17 2004 From: tom.bakken at tx.usda.gov (Bakken, Tom - Temple, TX) Date: Thu Sep 23 09:21:23 2004 Subject: APM: Process/System questions Message-ID: That did the trick. The system command would wait until shutdown.exe gracefully exited. The bug in windows prevented it from doing that, so the entire program would stall. Using back ticks doesn't wait for a graceful exit worked great. Thanks for the help. Tom Bakken Information Resource Manager Texas USDA, Rural Development -----Original Message----- From: ezra pagel [mailto:ezra@jdba.org] Sent: Friday, September 17, 2004 11:43 AM To: Bakken, Tom - Temple, TX Cc: austin@mail.pm.org Subject: Re: APM: Process/System questions Using backticks/qx instead of system() will let you capture standard output; you can redirect stderr if you need it. You can still check $? for the system exit code. Bakken, Tom - Temple, TX wrote: >Some time ago I posted a problem I was having with a script that was >supposed to restart workstations but stalled when it hit certain PCs. I >used Bill Raty's suggestion of the spawn subroutine. I wasn't able to >get it to work and put it aside until I recently had more time and now >seem to have gotten it running. > >Shutdown.exe has a known bug where if the workstation that's to be shut >down is at the Windows login screen, it will lock up. Bill's solution >works around that problem by waiting 20 seconds and then continuing if >the workstation stalls. Unfortunately, the system command returns a 0 >exit status for success even if shutdown.exe stalls. Is there any way >to capture the output from shutdown.exe which is "the device is not >ready"? Either that or if the script does wait 20 seconds and fails, >can I test for that somehow? > > -- ------------------------------------------------------- Ezra Pagel, Software Engineer Austin Logistics, Inc. Office: 512-651-5644 Mobile: 512-694-1107 epagel@austinlogistics.com ezra@cpan.org ------------------------------------------------------- The information in this Internet email is confidential and may be legally privileged. It is intended solely for the addressee. Access to this Internet email by anyone else is unauthorized. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or any action omitted in reliance on it, is prohibited and may be unlawful. When addressed to our clients any opinions or advice contained in this Internet email are subject to the terms and conditions expressed in any applicable governing Austin Logistics' contract terms. -------------- next part -------------- A non-text attachment was scrubbed... Name: Tom.Bakken@tx.usda.gov.vcf Type: text/x-vcard Size: 460 bytes Desc: Tom.Bakken@tx.usda.gov.vcf Url : http://mail.pm.org/pipermail/austin/attachments/20040923/67ed5516/Tom.Bakkentx.usda.gov.vcf From austin.pm at sam-i-am.com Tue Sep 28 11:00:23 2004 From: austin.pm at sam-i-am.com (Sam Foster) Date: Tue Sep 28 11:00:33 2004 Subject: APM: installing modules on a virtual server Message-ID: <41598A97.1070106@sam-i-am.com> Got a problem getting some modules onto a virtual server - this is a client's basic shared hosting package. I have ssh access. I can run perl -MCPAN -e shell; During the config setup, I'm adding PREFIX=~/perl5lib I can install stuff there just fine, but a lot of the modules obviously have dependancies.. and as ~/perl5lib isn't in @INC, I cant complete the tests or installation of the modules I need. Just for kicks I tried adding BEGIN { unshift @INC, '~/perl5lib' } to the top of the .cpan/CPAN/MyConfig.pm .. but I guess that falls out of scope by the time it comes to running the make tests Apparently I should be able to do: % setenv PERL5LIB ~/perl5lib but setenv is also apparently not available. I'm putting in a tech support call on this... any thoughts or alternatives? It seems like when I run perl -MCPAN -e shell, I should be able to add the directory to @INC at that point.. But i'm not clear - looking at the perldocs - how I would do that. TIA Sam From austin.pm at sam-i-am.com Tue Sep 28 13:37:01 2004 From: austin.pm at sam-i-am.com (Sam Foster) Date: Tue Sep 28 13:37:35 2004 Subject: APM: installing modules on a virtual server In-Reply-To: <1096389006.8500.205331481@webmail.messagingengine.com> References: <41598A97.1070106@sam-i-am.com> <1096389006.8500.205331481@webmail.messagingengine.com> Message-ID: <4159AF4D.8050202@sam-i-am.com> (excuse the top posting.. I did trim a little honest) I did some searching yesterday and came up with this: http://www.bluereef.net/support/extensions/development/perlmodown.html I'm using bash. setenv PERL5LIB ~/perl gives me the error that setenv is not available. export PERL5LIB=~/perl gave me nothing. I also tried perl -MCPAN -Mlib -e "unshift(@INC, '~/perl5lib');print join(\"\n\", @INC); shell;" and this worked in that it printed out @INC and showed it to include ~/perl5lib.. But when I went to cpan> test , it was still not picking up the dependancies even after I let it install them again. E.g. to install File::Slurp, it runs tests which want Test::More. Test::More wants Test::Harness. Each time it spots the dependancy, installs the module, but the test still fails as it cant find it (in ~/perl5lib) This is a trivial example, and I could probably make it skip those tests, but with others (e.g XML::LibXML) it becomes more of a hassle. Which brings me back to setenv PERL5LIB.. still no word back from tech support on that one (they said they were getting a technician to look at it.. and there's me thinking I'd called technical support :) Sam Taylor Carpenter wrote: > On Tue, 28 Sep 2004 11:00:23 -0500, "Sam Foster" > said: > >>Apparently I should be able to do: >>% setenv PERL5LIB ~/perl5lib >>but setenv is also apparently not available. > > Did you try export PERL5LIB (after doing PERL5LIB=~/perl5lib)? For bash > you can do > export PERL5LIB=~/perl5lib > but for some shells you have to first set then export the variable. > Be sure to add > use lib '/path/to/my/perl5lib'; > to your scripts. > > For CPAN you want the following set when configuring CPAN > > makepl_arg: PREFIX=~/perl5lib/ > cpan_home: /path/to/my/perl5lib/ANY_NAME_YOU_WANT > From cbl_mbi1 at yahoo.com Tue Sep 28 14:21:31 2004 From: cbl_mbi1 at yahoo.com (Brian Little) Date: Tue Sep 28 14:21:35 2004 Subject: APM: installing modules on a virtual server In-Reply-To: <4159AF4D.8050202@sam-i-am.com> Message-ID: <20040928192131.81597.qmail@web20024.mail.yahoo.com> Setting PERL5LIB to ~/perl isn't going to point to the right place (i.e. ~/perl5lib). If you're using bash and you're installing your modules into perl5lib then you might want to try export PERL5LIB=~/perl5lib --- Sam Foster wrote: > (excuse the top posting.. I did trim a little honest) > I did some searching yesterday and came up with this: > http://www.bluereef.net/support/extensions/development/perlmodown.html > > I'm using bash. > setenv PERL5LIB ~/perl > gives me the error that setenv is not available. > > export PERL5LIB=~/perl > gave me nothing. > I also tried > perl -MCPAN -Mlib -e "unshift(@INC, '~/perl5lib');print join(\"\n\", > @INC); shell;" > > and this worked in that it printed out @INC and showed it to include > ~/perl5lib.. But when I went to cpan> test , it was still not picking up > the dependancies even after I let it install them again. > E.g. to install File::Slurp, it runs tests which want Test::More. > Test::More wants Test::Harness. Each time it spots the dependancy, > installs the module, but the test still fails as it cant find it (in > ~/perl5lib) > This is a trivial example, and I could probably make it skip those > tests, but with others (e.g XML::LibXML) it becomes more of a hassle. > > Which brings me back to setenv PERL5LIB.. still no word back from tech > support on that one (they said they were getting a technician to look at > it.. and there's me thinking I'd called technical support :) > > Sam > > > Taylor Carpenter wrote: > > On Tue, 28 Sep 2004 11:00:23 -0500, "Sam Foster" > > said: > > > >>Apparently I should be able to do: > >>% setenv PERL5LIB ~/perl5lib > >>but setenv is also apparently not available. > > > > Did you try export PERL5LIB (after doing PERL5LIB=~/perl5lib)? For bash > > you can do > > export PERL5LIB=~/perl5lib > > but for some shells you have to first set then export the variable. > > Be sure to add > > use lib '/path/to/my/perl5lib'; > > to your scripts. > > > > For CPAN you want the following set when configuring CPAN > > > > makepl_arg: PREFIX=~/perl5lib/ > > cpan_home: /path/to/my/perl5lib/ANY_NAME_YOU_WANT > > > _______________________________________________ > Austin mailing list > Austin@mail.pm.org > http://mail.pm.org/mailman/listinfo/austin > _______________________________ Do you Yahoo!? Declare Yourself - Register online to vote today! http://vote.yahoo.com From ian at remmler.org Tue Sep 28 14:25:08 2004 From: ian at remmler.org (Ian Remmler) Date: Tue Sep 28 14:25:15 2004 Subject: APM: installing modules on a virtual server In-Reply-To: <4159AF4D.8050202@sam-i-am.com> References: <41598A97.1070106@sam-i-am.com> <1096389006.8500.205331481@webmail.messagingengine.com> <4159AF4D.8050202@sam-i-am.com> Message-ID: <20040928192508.GA852@remmler.org> On Tue, Sep 28, 2004 at 01:37:01PM -0500, Sam Foster wrote: > I'm using bash. > setenv PERL5LIB ~/perl > gives me the error that setenv is not available. > > export PERL5LIB=~/perl > gave me nothing. The latter in bash does exactly what the former does in cshell. That should be all you need. setenv does not exist in bourne-based shells. If you want to use setenv you can always run csh, then try it from there. If by "gave me nothing" above, you mean there was no output from the command, that's normal. Just do a "set |grep PERL5LIB" or "echo $PERL5LIB" to see the contents. If you already know this stuff, excuse the wasted bytes. Unless the perl binary is wonkey, I can't see a reason why that shouldn't work. I'm using a similar setup at work with no problems. I haven't needed the 'use lib' trick. -- Go banana! From austin.pm at sam-i-am.com Tue Sep 28 14:25:28 2004 From: austin.pm at sam-i-am.com (Sam Foster) Date: Tue Sep 28 14:25:31 2004 Subject: APM: installing modules on a virtual server In-Reply-To: <20040928192131.81597.qmail@web20024.mail.yahoo.com> References: <20040928192131.81597.qmail@web20024.mail.yahoo.com> Message-ID: <4159BAA8.5030000@sam-i-am.com> Brian Little wrote: > Setting PERL5LIB to ~/perl isn't going to point to the right place (i.e. > ~/perl5lib). If you're using bash and you're installing your modules into perl5lib > then you might want to try > > export PERL5LIB=~/perl5lib sorry, that's what I meant.. just a typo in my message. export PERL5LIB=~/perl5lib doesn't do anything .. no message, no result. Sam From austin.pm at sam-i-am.com Tue Sep 28 14:42:34 2004 From: austin.pm at sam-i-am.com (Sam Foster) Date: Tue Sep 28 14:42:37 2004 Subject: APM: installing modules on a virtual server In-Reply-To: <20040928192508.GA852@remmler.org> References: <41598A97.1070106@sam-i-am.com> <1096389006.8500.205331481@webmail.messagingengine.com> <4159AF4D.8050202@sam-i-am.com> <20040928192508.GA852@remmler.org> Message-ID: <4159BEAA.4060203@sam-i-am.com> Ian Remmler wrote: > If by "gave me nothing" above, you mean there was no output from > the command, that's normal. Just do a "set |grep PERL5LIB" or > "echo $PERL5LIB" to see the contents. If you already know this > stuff, excuse the wasted bytes. > > Unless the perl binary is wonkey, I can't see a reason why that > shouldn't work. I'm using a similar setup at work with no > problems. I haven't needed the 'use lib' trick. > Ahh.. Thank you Ian for pointing out the should-have-been-obvious. PERL5LIB was indeed being set, but running the cpan shell having set it, gave me the same result - modules installed to ~/perl5lib are not being found. In the Test::* example, I've got ~/perl5lib/lib/Test/Builder.pm ~/perl5lib/lib/Test/Harness ~/perl5lib/lib/Test/Harness.pm ~/perl5lib/lib/Test/More.pm ~/perl5lib/lib/Test/Simple.pm ~/perl5lib/lib/Test/Tutorial.pod (~/perl5lib resolves to /home/usgm/perl5lib) yet, the File::Slurp tests complain: t/stdin.............Can't locate Test/More.pm in @INC (@INC contains: blib/arch blib/lib /usr/lib/perl5/5.6.1/i686-linux /usr/lib/perl5/5.6.1/i686-linux /usr/lib/perl5/5.6.1/i686-linux /usr/lib/perl5/5.6.1 /home/usgm/perl5lib /usr/lib/perl5/5.6.1/i686-linux /usr/lib/perl5/5.6.1/i686-linux /usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1/i686-linux /usr/lib/perl5/site_perl/5.6.1/i686-linux /usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl/5.6.1/i686-linux /usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl . /usr/lib/perl5/5.6.1/i686-linux /usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1/i686-linux /usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl .) at t/stdin.t line 9. /home/usgm/perl5lib is in fact in @INC... However, export PERL5LIB = ~/perl5lib/lib does make it all work. I guess I was expecting it to search down from ~/perl5lib, it didn't occur to me I needed the extra '/lib'. thanks all, I think I'm back on track. Sam