Just a long shot, but try this:
eval {
$self->Fetch($key, !$Win32::OLE::Strict);
};
print $@;
By wrapping the expression in eval, any die's that might have been issued will be trapped
and you can inspect the reason why in $@.
| [reply] [d/l] |
than perhaps some of the surrounding code might be useful, as it is not clear at all what you are trying to do
/J\
| [reply] |
use Date::Calc qw( Delta_Days );
...
my $enddate = MetaLink::getField('END_DATE'); # $enddate equals '03/22/2006' (a string)
my $startdate = MetaLink::getField('START_DATE'); # $enddate equals '03/22/2002' (also a string)
...
my ($sdd, $smm, $syyyy) = ($startdate =~ /(\d+)\/(\d+)\/(\d+)/);
my ($edd, $emm, $eyyyy) = ($enddate =~ /(\d+)\/(\d+)\/(\d+)/);
my $days = Delta_Days($syyyy, $smm, $sdd, $eyyyy, $emm, $edd);
When the last line is stepped through, the program jumps to:
package Win32::OLE::Tie;
# Only retry default method under C<no strict 'subs';>
sub FETCH {
my ($self,$key) = @_;
if ($key eq "_NewEnum") {
(my $class = ref $self) =~ s/::Tie$//;
return [Win32::OLE::Enum->All($self)] if <p><code> ${"${class}::_NewEnum"};
}
$self->Fetch($key, !$Win32::OLE::Strict);
}
The if ($key eq "_NewEnum") is false and the programm terminates (abruptly) on the line $self->Fetch($key, !$Win32::OLE::Strict);
| [reply] [d/l] [select] |