#!/usr/bin/perl -w use Getopt::Long; use Anime::ANN; binmode STDOUT, ":utf8"; GetOptions(\%options, "l=s", "b=s", "d") || exit 1; if($options{"l"}) { @list = Anime::ANN::getlist($options{"l"}); foreach $name (@list) { print "$name\n"; } exit 0; } $browse = ""; if($options{"b"}) { $browse = $options{"b"}; } elsif($options{"d"}) { $browse = `basename "\$(pwd)"`; } if($browse) { $id = Anime::ANN::getid $browse; if(defined($id)) { exec "htmlview", Anime::ANN::geturl($id); } else { printf STDERR "could not find " . $browse . "\n"; exit 1; } } if(!defined($ARGV[0])) { printf STDERR "usage: anndata NAME\n"; exit 1; } unless($id = Anime::ANN::getid $ARGV[0]) { printf STDERR "could not find $ARGV[0]\n"; exit 1; } $info = Anime::ANN::getseries $id; sub refdump { my($ref, $ind); ($ref, $ind) = @_; if(!defined($ind)) { $ind = 0; } if(ref $ref eq "HASH") { for $key (sort keys %{$ref}) { print ((" " x $ind) . "$key: " . (" " x (20 - length $key)) . "(" . $ref->{$key} . ")\n"); refdump($ref->{$key}, $ind + 1) if ref $ref->{$key}; } } elsif(ref $ref eq "ARRAY") { for($i = 0; $i < @{$ref}; $i++) { print ((" " x $ind) . "$i: " . $ref->[$i] . "\n"); refdump($ref->[$i], $ind + 1) if ref $ref->[$i]; } } elsif(ref $ref eq "SCALAR") { print ((" " x $ind) . $$ref . "\n"); } else { print ((" " x $ind) . "Unknown ref: $ref\n"); } } refdump $info;