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
>

Reply via email to