Perhaps this is specific to Mac Office or OS X? I'm running MS Office Pro Plus 2010 on Windows 7 Pro SP1.
On Thu, Feb 26, 2015 at 11:05 AM, Furst, Carl <carl.fu...@mlb.com> wrote: > What system, version of Excel? > I’m using Mac Office on OS 10.9.5 > > > Carl Furst > > > From: Matthew Musgrove <mr.musk...@gmail.com> > Date: Wednesday, February 25, 2015 at 2:31 PM > Cc: Perl DBI mailing list <dbi-users@perl.org> > Subject: Re: DBD::CSV > > Carl, > When I tried it just now (first time using DBD::CSV) it just worked as I > would expect. > > First, here's my script that I named test.pl: > #!/bin/env perl > use strict; > use warnings; > > use Data::Dumper; > use DBI; > use Try::Tiny qw( try catch ); > > my $dbh = DBI->connect( 'DBI:CSV:', '', '', { > f_schema => undef, > f_dir => '.', > f_ext => '.csv/r', > RaiseError => 1, > PrintError => 0, > }) or die "Cannot connect: $DBI::errstr"; > > my $test = try { > return $dbh->selectall_arrayref( 'select * from test' ); > } > catch { > my $err = $_; > if ( $err =~ m!^.*DBD::CSV::db.*?Execution ERROR: (.*?) at > .*?DBI/DBD.*?line \d+.*?called from (.*? at \d+)\..*?$!s ) > { > my ( $msg, $where ) = ( $1, $2 ); > warn "$msg -- $where\n"; > } > else > { > warn "$err\n"; > } > return {}; > }; > > print Dumper( $test ); > __END__ > > Here is my test.csv file: > id,value > a,1 > b,2 > c,3 > > When I run it with test.csv (whether or not it is open in Excel) I get > this output: > $VAR1 = [ > [ > 'a', > '1' > ], > [ > 'b', > '2' > ], > [ > 'c', > '3' > ] > ]; > > When I run it from a network drive I get this output: > Cannot obtain shared lock on /export/home/mmusgrove/test. > csv: No locks available -- ./test.pl at 18 > $VAR1 = {}; > > HTH, > Matt > > > On Wed, Feb 25, 2015 at 11:25 AM, Furst, Carl <carl.fu...@mlb.com> wrote: > >> I think someone wrote about this before, but I just wanted to bring it up >> again. >> >> Is there a way to have DBD::CSV produce a warning or a message (like when >> printError and raise error is set) to say that it’s waiting for a file >> lock?? >> >> For example if I’m using my oh so beloved MS Excel and it locks the csv >> file and at the same time I’m trying to also run my even more beloved perl >> script which is trying to open the file for read. The script of course >> hangs when trying to execute any statements because it’s waiting for the >> flock put there by MS Excel..Is there a lock timeout? Is that what f_lock >> => 2 is for?? >> >> At least I’m pretty sure that’s what’s happening because when I open it in >> things that put the whole file into memory (like my other beloved text >> editor) I have no problem, but excel likes to lock things, it seems. When >> I close the file in Excel, of course, the perl runs like a charm. >> >> Thanks, >> Carl Furst >> >> ********************************************************** >> >> MLB.com: Where Baseball is Always On >> > > > ********************************************************** > > MLB.com: Where Baseball is Always On >