view release on metacpan or search on metacpan
lib/Aliyun.pm view on Meta::CPAN
$method2->set_bill_real('123123');
$method2->set_iccid('123123');
my $request = Aliyun::Request->new();
$request->get($auth, $method, sub {
say Dumper $_[0];
});
$request->get($auth, $method2, sub {
say Dumper $_[0];
});
=head1 SEE ALSO
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/AllKnowingDNS/Handler.pm view on Meta::CPAN
# If the upstream query was successful, relay the response, otherwise
# generate a reply.
if (defined($result) && $result->header->rcode eq 'NOERROR') {
if ($querylog) {
say strftime('%x %X %z', localtime) . " - Relaying upstream answer for $qname";
}
my @answer = $result->answer;
for my $answer (@answer) {
my $name = $answer->name;
$name =~ s/\.upstream$//;
lib/App/AllKnowingDNS/Handler.pm view on Meta::CPAN
sub reply_handler {
my ($config, $querylog, $qname, $qclass, $qtype, $peerhost) = @_;
if ($querylog) {
say strftime('%x %X %z', localtime) . " - $peerhost - query for $qname ($qtype)";
}
if ($qtype eq 'PTR' &&
defined(my $zone = $config->zone_for_ptr($qname))) {
return handle_ptr_query($querylog, $zone, $qname, $qclass, $qtype);
view all matches for this distribution
view release on metacpan or search on metacpan
make test
make install
You will probably have to login as root for the last step (or you can type
"sudo make install" and enter your root password). If you want to install
the Perl modules in a non-standard location, say in "~/perl/lib/perl5/..."
and "~/perl/man/...", type the following instead of "perl Makefile.PL":
perl Makefile.PL PREFIX=~/perl INSTALLMAN1DIR=~/perl/man/man1
Note that you will then have to include the appropriate subdirectories of
view all matches for this distribution
view release on metacpan or search on metacpan
$CWB::DefaultRegistry; # compiled-in default registry directory
=cut
# make package configuration variables available
our $Prefix = $CWB::Config::Prefix; # this doesn't say much, as individual install directories may have been overwritten
our $BinDir = $CWB::Config::BinDir;
our $DefaultRegistry = $CWB::Config::Registry;
# global variables: full paths to CWB tools
our $Config = "$BinDir/cwb-config";
view all matches for this distribution
view release on metacpan or search on metacpan
lib/FFI/Raw.pm view on Meta::CPAN
'libm.so', 'cos',
FFI::Raw::double, # return value
FFI::Raw::double # arg #1
);
say $cos->call(2.0);
=head1 DESCRIPTION
B<FFI::Raw> provides a low-level foreign function interface (FFI) for Perl based
on L<libffi|http://sourceware.org/libffi/>. In essence, it can access and call
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Math/Prime/FastSieve.pm view on Meta::CPAN
Sieve object. Returns true if the integer is prime, false otherwise.
If the integer is out of the Sieve object's bounds, the result will be
false.
if( $sieve->isprime(42) ) {
say "42 is prime.";
} else {
say "42 isn't prime.";
}
C<is_prime()> is a synonym for C<isprime()>. They're the same method; I
just grew tired of forgetting which spelling to use when calling the
method.
lib/Math/Prime/FastSieve.pm view on Meta::CPAN
=head3 nth_prime()
This method returns the n-th prime, where C<$n> is the cardinal index in the
sequence of primes. For example:
say $sieve->nth_prime(1) # prints 2: the first prime is 2.
say $sieve->nth_prime(3) # prints 5: the third prime is 5.
If there is no nth prime in the bounds of the sieve C<0> is returned.
view all matches for this distribution
view release on metacpan or search on metacpan
t/Test/Builder.pm view on Meta::CPAN
if( $arg ) {
return $self->expected_tests($arg);
}
elsif( !defined $arg ) {
die "Got an undefined number of tests. Looks like you tried to ".
"say how many tests you plan to run but made a mistake.\n";
}
elsif( !$arg ) {
die "You said to run 0 tests! You've got to run something.\n";
}
}
t/Test/Builder.pm view on Meta::CPAN
Like summary(), but with a lot more detail.
$tests[$test_num - 1] =
{ 'ok' => is the test considered a pass?
actual_ok => did it literally say 'ok'?
name => name of the test (if any)
type => type of test (if any, see below).
reason => reason for the above (if any)
};
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Alt/common/sense/TOBYINK.pm view on Meta::CPAN
Importing L<common::sense> is roughly equivalent to:
use utf8;
use strict qw(vars subs);
use feature qw(say state switch);
use feature qw(unicode_strings current_sub fc evalbytes);
no feature qw(array_base);
no warnings;
use warnings qw(FATAL closed threads internal debugging pack
portable prototype inplace io pipe unpack malloc
view all matches for this distribution
view release on metacpan or search on metacpan
BabelFish.pm view on Meta::CPAN
=head1 DON'T PANIC
Just a personal note about what this module means to me. I like it because
it combines two of my favorite things: Perl and the world of Douglas Adams
So I'd like to say "print $thanks for 1..1000000;" to Mr. Wall for Perl and
to Mr. Adams: So long and thanks for all the fish, we'll miss you buddy :)
=head1 SEE ALSO
L<LWP::UserAgent>, L<CPAN>, L<IO::Redirect>, L<Locales::Language>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Alter.pm view on Meta::CPAN
the pure Perl fallback. At run time it has no effect.
=head2 Description
The C<Alter> module is meant to facilitate the creation of classes
that support I<black-box inheritance>, which is to say that an
C<Alter> based class can be a parent class for I<any other> class,
whether itself C<Alter> based or not. Inside-out classes also have
that property. C<Alter> is thus an alternative to the I<inside-out>
technique of class construction. In some respects, C<Alter> objects
are easier to handle.
view all matches for this distribution
view release on metacpan or search on metacpan
bin/alvisXSL view on Meta::CPAN
my $size = 0;
#print STDERR "Starting XSLfill\n";
# set up new XSLT instance
# note we need to set this up with open/waitpid
# combination say that one STDOUT is finished before
# the next one is started
my $pid = 0;
if ($pid = open(FOUT, "|-") ) {
# goal is to fill up the XSLTPROC with one XML file
my $filled = 0;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Alvis/NLPPlatform/NLPWrappers.pm view on Meta::CPAN
that exploits them. The semantic relation tagger is therefore a mere
wrapper for the inference method.
=item * In the case where the document is not syntactically parsed,
the method will base its tagging on relations given by the ontology,
that is to say all known relations holding between semantic units
described in the document will be added, whether those relations be
explicitly mentioned in the document or not.
=back
view all matches for this distribution
view release on metacpan or search on metacpan
install_helpers/pod_merge.pl view on Meta::CPAN
$to =~ s/\r//g;
$to =~ s/\n
=for\ pod_merge # find this string at the beginning of a line
(?:
\s+
(\w+) # say what POD marker to merge from
)
(?:
\ +
(\w+) # optionally, say what POD marker to merge until (i.e. =head3)
)?
.*? # what we're going to merge (and replace)
\n+
(?=
\n= # next =foo marker, skipping all spaces. This just makes matching stop here
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Amazon/DynamoDB/Simple.pm view on Meta::CPAN
# TODO: this could be more efficient by syncing to just the ddb
# that needs it
$self->put(%$newest);
}
# Lets say we are syncing from $dynamodb0 -> $dynamodb1. This prevents
# us from re syncing this item when we sync in the other direction from
# $dynamodb1 -> $dynamodb0
$to_value->{last_updated} = $from_value->{last_updated};
}
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Amazon/MWS/Uploader.pm view on Meta::CPAN
endpoint => 'xxx',
products => \@products,
);
# say once a day, retrieve the full batch and send it up
$agent->upload;
# every 10 minutes or so, continue the work started with ->upload, if any
$agent->resume;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Amazon/PAApi5/Payload.pm view on Meta::CPAN
my $payload = Amazon::PAApi5::Payload->new(
'PARTNER_TAG'
);
say $payload->to_json({
Keywords => 'Perl',
SearchIndex => 'All',
ItemCount => 2,
Resources => [qw/
ItemInfo.Title
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Amazon/SQS/Consumer.pm view on Meta::CPAN
Amazon::SQS::Consumer - Receive messages from an Amazon Simple Queue Service (SQS) queue
=cut
sub say (@) { warn join ' ', (split ' ', scalar localtime)[2,1,4,3], "[$$]", (split '/', $0)[-1], @_, "\n"; return @_; }
$SIG{INT} = sub { say 'caught signal INT'; exit 0; };
$SIG{CHLD} = 'IGNORE';
=head1 SYNOPSIS
use Amazon::SQS::Consumer;
lib/Amazon/SQS/Consumer.pm view on Meta::CPAN
my $body = $message->{Body};
$body = encode_utf8( $body ) if is_utf8( $body );
$object = decode_json $body;
};
if ( $@ ) {
say "left bad message in queue; could not decode JSON from $message->{Body}: $@";
} else {
return $object;
}
} elsif ( $me->{no_loop} ) {
$seconds_to_wait = 0;
} else {
# Otherwise, wait a few seconds and try again
say "waiting $seconds_to_wait seconds for new messages"
if $seconds_to_wait == $me->{wait_seconds};
sleep SECONDS_BETWEEN_TRIES;
$seconds_to_wait -= SECONDS_BETWEEN_TRIES;
}
lib/Amazon/SQS/Consumer.pm view on Meta::CPAN
sub delete_previous {
my $me = shift;
if ( $me->{DeleteMessageHandle} ) {
say "deleting message $me->{DeleteMessageHandle}" if $me->{debug};
$me->delete_message( Queue => $me->{queue}, ReceiptHandle => $me->{DeleteMessageHandle} );
}
}
sub defer { delete $_[0]->{DeleteMessageHandle} }
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Amazon/Site.pm view on Meta::CPAN
tldn => 'co.uk',
currency => 'GBP',
sort => 1,
);
say $site->tldn; # co.uk
say $site->domain; # amazon.co.uk
say $site->asin_url('XXXXXXX'); # https://amazon.co.uk/dp/XXXXXXX
=cut
use strict;
use warnings;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/AmbientOrb/Serial.pm view on Meta::CPAN
sub send {
my ( $self, $message ) = @_;
$self->serial_port->write( $message );
my $result;
#the docs say that you have to poll a lot to get the
#correct result back. there is no doubt a better way
#to do this, but 1000 seems to be a nice magic number
for ( 1 .. 1000 )
{
$result = $self->serial_port->input;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Ambrosia/Config.pm view on Meta::CPAN
{
instance Ambrosia::Config( myApplication => './foo.conf' );
};
Ambrosia::Config::assign 'myApplication';
#..............
say Foo::proc1();
#..............
#In the file "Foo.pm"
package Foo;
use Ambrosia::Config;
view all matches for this distribution
view release on metacpan or search on metacpan
Amethyst/Brain/Infobot/Module/Zappa.pm view on Meta::CPAN
Eddie, are you kidding?
I'll do the stupid thing first and then you shy people follow...
Stupidity is the basic building block of the universe.
Never try to get your peter sucked in France.
Kill Ugly Radio
I'm not black, but there's a whole lot of times I wish I could say I'm not white.
Help! I'm a rock!
Another day, another sausage...
Some Scientists claim that hydrogen, because it is so plentiful, is the basic building block of the universe. I dispute that. I say there is more stupidity than hydrogen, and that is the basic building block of the universe.
I want a garden!
On a personal level, Freaking Out is a process whereby an individual casts off outmoded and restricting standars of thinking, dress, and social etiquette in order to express CREATIVELY his relationship to his immediate environment and the social stru...
Great googly-moogly - you're gonna do it too!
Information is not knowledge, Knowledge is not wisdom, Wisdom is not truth, Truth is not beauty, Beauty is not love, Love is not music Music is THE BEST
Gee, it's so hard to find a place to park around here.
There are more love songs than anything else. If songs could make you do something we'd all love one another.
If classical music is the state of the art, then the arts are in a sad state.
Beauty is a French phonetic corruption of a short, cloth neck ornament, currently in resurgence.
Modern music is a sick puppy.
Some Scientists claim that hydrogen, because it is so plentiful, is the basic building block of the universe. I dispute that. I say there is more stupidity than hydrogen, and that is the basic building block of the universe.
Most people wouldn't know good music if it came up and bit them in the äss. -- Whole Grains
I figure the odds be fifty-fifty I just might have some thing to say.
The person who stands up and says, `This is stupid,' either is asked to behave or, worse, is greeted with a cheerful `Yes, we know! Isn't it terrific!'
The more BORING a child is, the more the parents, when showing off the child, receive adulation for being GOOD PARENTS -- because they have a TAME CHILD-CREATURE in their house.
The worst aspect of `typical familyism' (as media-merchandised) is that it glorifies _involuntary_homogenization_.
Amethyst/Brain/Infobot/Module/Zappa.pm view on Meta::CPAN
Thanks to our schools and political leadership, the U.S. has acquired an international reputation as the home of 250 million people dumb enough to buy 'The Wacky Wall-Walker.'
Stupidity has a certain charm -- ignorance does not.
The real question is: Is it possible to laugh while fucking?
The single-child yuppo-family that uses the child as a status object: `A perfect child? Of course! We have one here -- he's under the coffee table. Ralph, stand up! Play the violin!'
Americans like to talk about (or be told about) Democracy but, when put to the test, usually find it to be an 'inconvenience.' We have opted instead for an authoritarian system disguised as a Democracy. We pay through the nose for an enormous joke-...
In every language, the first word after 'Mama!' that every kid learns to say is 'Mine!' A system that doesn't allow ownership, that doesn't allow you to say 'Mine!' when you grow up, has -- to put it mildly -- a fatal design flaw.
From the time Mr. Developing Nation was forced to read _The Little Red Book_ in exchange for a blob of rice, till the time he figured out that waiting in line for a loaf of pumpernickel was boring as fuck, took about three generations. ...
Decades of indoctrination, manipulation, censorship and KGB excursions haven't altered this fact: People want a piece of their own little Something-or-Other, and, if they don't get it, have a tendency to initiate counterrevolution.
If it sounds GOOD to YOU, it's bitchen; and if it sounds BAD to YOU, it's shitty.
The computer can't tell you the emotional story. It can give you the exact mathematical design, but what's missing is the eyebrows.
In the fight between you and the world, back the world.
Amethyst/Brain/Infobot/Module/Zappa.pm view on Meta::CPAN
Flatulence can be cruel!
Speed: It will turn you into your parents. -- 1970 public service announcement regarding drug (namely, speed) use
Winos don't march.
Reporter: This is a personal thing, I think that if you wanted to make top ten hits and sell millions of records, you could. FZ: Yeah, but who wants to go through life with a tiny nose and one glove on?
It is always advisable to be a loser if you cannot become a winner.
I knew Jimi (Hendrix) and I think that the best thing you could say about Jimi was: there was a person who shouldn't use drugs.
The emotion of every player is the most important thing, what stands behind this chord or tone. If you leave that out, the music does not touch you. -- Interview from Keyboard June 1980.
It's better to have something to remember than nothing to reget...
Why do people continue to compose music, and even pretend to teach others how to do it, when they already know the answer? Nobody gives a fuck.
If you wind up with a boring, miserable life because you listened to your mom, your dad, your teacher, your priest or some guy on TV telling you how to do your shit, then YOU DESERVE IT. -- The Real Frank Zappa Book
A mind is like a parachute. It doesn't work if it not open.
Amethyst/Brain/Infobot/Module/Zappa.pm view on Meta::CPAN
The typical rock fan is not smart enough to know when he is being dumped on.
It's not pretty, also you can't dance to it.
It's all one big note.
Ladies and gentleman, watch Ruth. All through the show, Ruth has been thinking...Ruth has been thinking? ALL THROUGH THE SHOW???
You can tell what they think of our music by the places we are forced to play it in. This looks like a good spot for a livestock show. -- April 1968, Chicago, Mothers of Invention open for Cream
I'm not going to be Bill Clinton and say I never inhaled. I did inhale. I liked tobacco a lot better.
Consider for a moment any beauty in the name Ralph. -- FZ on why he gave his children such odd names
I write the music I like. If other people like it, fine, they can go buy the albums. And if they don't like it, there's always Michael Jackson for them to listen to. -- about his music from the Yellow Shark.
I never set out to be weird. It was always the other people who called me weird.
Government is the Entertainment Division of the military-industrial complex.
Why doncha come on over to the house and I'll show 'em to ya? -- PMRC Hearings to Sen. Hawkins in reply to her comment: 'I'd like to see what kind of toys your children play with.'
Amethyst/Brain/Infobot/Module/Zappa.pm view on Meta::CPAN
Nobody looks good in brown lipstick
Whenever your down, just think about how you got there.
To me, cigarettes are food -- Response to an assertion that his nicotine habit conflicted with his anti-drug stance
May you'll never hear a vloerbedekking again.
Seeing a psychotherapist is not a crazy idea, its just wanting a second opinion of ones life.
You can't always write a chord ugly enough to say what you want to say, so sometimes you have to rely on a giraffe filled with whipped cream.
Bad facts make bad laws -- Said during the PMRC hearings
Well, you know people, I'd rather have my own game show than enough votes to become president.
Anything can be music -- Answer to critics accusing him of not doing actual music on Uncle Meat
Scientology, how about that? You hold on to the tin cans and then this guy asks you a bunch of questions, and if you pay enough money you get to join the master race. How's that for a religion? -- Concert at the Rockpile, Toronto, May 1969
Yeah, I tell them to change the channel if they see some guy in a brown suit with a telephone number at the bottom of the screen asking for money. -- response to Tipper Gore when asked if there was anything on the TV he _didn't_ allow his kids to wa...
view all matches for this distribution
view release on metacpan or search on metacpan
script/dash view on Meta::CPAN
my $client = $amp->writeClient($instance);
my $rows = $client->getEnvConfig;
say Dumper $rows;
# testInsert();
sub testInsert {
my $sql = "INSERT INTO automation.job (data) VALUES ";
my $job_json = getData();
$sql .= "(" . $client->quote($job_json) . ")";
say "\n\n$sql\n\n";
$client->do($sql);
}
sub getData {
view all matches for this distribution
view release on metacpan or search on metacpan
t/features/language_support.feature view on Meta::CPAN
Then analizo must report that "<main_function>" depends on "<hello_say>"
And analizo must report that "<main_function>" depends on "<hello_destroy>"
Examples:
| language | main_function | hello_say | hello_destroy |
| c | main::main() | hello_world::hello_world_say(hello_world *) | hello_world::hello_world_destroy(hello_world *) |
| cpp | main::main() | HelloWorld::say() | HelloWorld::destroy() |
| java | Main::main(String[]) | HelloWorld::say() | HelloWorld::destroy() |
| csharp | main::Main() | HelloWorld::say() | HelloWorld::destroy() |
Scenario: intra-module dependencies
Given I am in t/samples/hello_world/<language>
When I run "analizo graph ."
Then analizo must report that "<hello_say>" depends on "<hello_id>"
And analizo must report that "<hello_destroy>" depends on "<hello_id>"
Examples:
| language | hello_say | hello_destroy | hello_id |
| c | hello_world::hello_world_say(hello_world *) | hello_world::hello_world_destroy(hello_world *) | hello_world::_hello_world::id |
| cpp | HelloWorld::say() | HelloWorld::destroy() | HelloWorld::_id |
| java | HelloWorld::say() | HelloWorld::destroy() | HelloWorld::_id |
| csharp | HelloWorld::say() | HelloWorld::destroy() | HelloWorld::_id |
Scenario: some metrics
Given I am in t/samples/hello_world/<language>
When I run "analizo metrics ."
Then analizo must report that the project has total_modules = 2
view all matches for this distribution
view release on metacpan or search on metacpan
Makefile.old view on Meta::CPAN
TEST_F = test -f
TOUCH = touch
UMASK_NULL = umask 0
DEV_NULL = > /dev/null 2>&1
# The following is a portable way to say mkdir -p
# To see which directories are created, change the if 0 to if 1
MKPATH = $(PERLRUN) "-MExtUtils::Command" -e mkpath
# This helps us to minimize the effect of the .exists files A yet
# better solution would be to have a stable file in the perl
view all matches for this distribution
view release on metacpan or search on metacpan
Makefile.old view on Meta::CPAN
TEST_F = test -f
TOUCH = touch
UMASK_NULL = umask 0
DEV_NULL = > /dev/null 2>&1
# The following is a portable way to say mkdir -p
# To see which directories are created, change the if 0 to if 1
MKPATH = $(PERLRUN) "-MExtUtils::Command" -e mkpath
# This helps us to minimize the effect of the .exists files A yet
# better solution would be to have a stable file in the perl
view all matches for this distribution
view release on metacpan or search on metacpan
Makefile.old view on Meta::CPAN
TEST_F = test -f
TOUCH = touch
UMASK_NULL = umask 0
DEV_NULL = > /dev/null 2>&1
# The following is a portable way to say mkdir -p
# To see which directories are created, change the if 0 to if 1
MKPATH = $(PERLRUN) "-MExtUtils::Command" -e mkpath
# This helps us to minimize the effect of the .exists files A yet
# better solution would be to have a stable file in the perl
view all matches for this distribution
view release on metacpan or search on metacpan
Compiler/parser.y view on Meta::CPAN
%token '{' '}' ',' ';' ':' '(' ')' '[' ']' '=' '$'
/* I should have a new type 'node' in here for blessed objects
* which are specifically parse nodes. */
/* It is very very tempting to expand this to say 12 bytes
* to save on the use of AVs for type declarators. */
%union {
int number;
const char *str;
SV *sv;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Android/ADB/Device.pm view on Meta::CPAN
=head1 SYNOPSIS
use Android::ADB;
my @devices = $adb->devices;
say $devices[0]->serial;
say $devices[0]->state; # e.g. offline, bootloader, sideload, or device
# The available attributes depend on your device
say $devices[0]->usb; # e.g. 2-1
say $devices[0]->product; # e.g. angler
say $devices[0]->model; # e.g. MI_MAX
say $devices[0]->device; # e.g. angler
=head1 DESCRIPTION
Information about an Android device in form of a blessed hash with a
few accessors. See SYNPOSIS for a list of accessors.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Android/Build.pm view on Meta::CPAN
sub logMessage($@) # Log a message
{my ($android, @message) = @_;
my $s = join '', grep {$_} @message;
chomp($s) if $s =~ /\n\Z/;
push @{$android->log}, $s;
say STDERR $s if -t STDERR;
}
#-------------------------------------------------------------------------------
# Create icons for app
#-------------------------------------------------------------------------------
lib/Android/Build.pm view on Meta::CPAN
makePath($T);
unlink $T;
my $c = "convert -strip \"$icon\" -resize ${s}x${s}! \"$T\""; # Convert icon to required size and make it square
my $r = zzz($c);
# say STDERR dump([$c, $icon, $T, -e $T, fileSize($T), $r ]);
confess "Unable to create icon:\n$T\n$r\n" # Check icon was created
if $r or !-e $T or fileSize($T) < 10;
}
}
}
lib/Android/Build.pm view on Meta::CPAN
my $apk = $android->apk;
my $device = $android->getDevice;
my $package = $android->getPackage;
my $activity = $android->activityX;
my $adb = $android->getAdb." $device ";
# say STDERR "Install app";
zzz("$adb install -r $apk");
# say STDERR "Start app";
zzz("$adb shell am start $package/.Activity");
# say STDERR "App installed and started";
}
sub lint2($) #P Lint all the source code java files for the app
{my ($android) = @_; # Android build
my $src = $android->getLintFile;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Android/ElectricSheep/Automator/ADB/Device.pm view on Meta::CPAN
=head1 SYNOPSIS
use Android::ElectricSheep::Automator::ADB;
my @devices = $adb->devices;
say $devices[0]->serial;
say $devices[0]->state; # e.g. offline, bootloader, sideload, or device
# The available attributes depend on your device
say $devices[0]->usb; # e.g. 2-1
say $devices[0]->product; # e.g. angler
say $devices[0]->model; # e.g. MI_MAX
say $devices[0]->device; # e.g. angler
=head1 DESCRIPTION
Information about an Android device in form of a blessed hash with a
few accessors. See SYNPOSIS for a list of accessors.
view all matches for this distribution