Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Replacment for Data::Diver due missing license

by n.preining (Initiate)
on Aug 29, 2013 at 06:18 UTC ( #1051359=note: print w/ replies, xml ) Need Help??


in reply to Replacment for Data::Diver due missing license

Hi Werner,

as expected, you also stumbled on that. I was fed up with the old biber in Debian so I decided to give it a shot and remove Data::Diver from the biber code. It only uses the Dive function, and none of the exotic features of Data::Diver.

I have created a Dive function in Biber::Utils.p, and removed all the references to Data::Diver in Build.PL, META.*, lib/Biber/Entry.pm, lib/Biber/Internals.pm.

The function is trivial, it does not implement everything, but I guess it is enough for biber at the moment.

If anyone wants to comment on it, here it is:

sub Dive { my ($ref, @keys) = @_; return unless defined($ref); for my $k (@keys) { if ($k =~ m/^-?\d+$/) { $ref = $ref->[$k]; } else { $ref = $ref->{$k}; } } return $ref; }

Unfortunately Debian is going through perl transition to 5.18 now, so many of the necessary modules are still not updated, so I cannot run tests with actual biber, but I tried the calls in the POD docs of Data::Diver and they worked as expected.

Let us extended that function a bit and provide a replacement for Data::Diver if the author does not want to provide a license.

Norbert, TeX Live Team & Debian TeX Team


Comment on Re: Replacment for Data::Diver due missing license
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1051359]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (3)
As of 2015-07-05 16:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (67 votes), past polls