App-Cheats

 view release on metacpan or  search on metacpan

cheats.txt  view on Meta::CPAN

    package Other;
    use e;
    sub Add {
        trace();
        my ($num1,$num2) = @_;
        return $num1 + $num2;
    }
    package main;
    use Memoize;
    memoize("Other::Add");
    say(Other::Add(2,3)) for 1..3;
'
[2024/05/10-10:22:08.164] --> [2] Add ...
5
5
5

# In-Memory storage/cache using Memoize.
# Normalize if the output is not enturely dependent upon
# the input (something found in $self)
perl -Me -e '
    package Other;
    use e;
    sub Add {
        trace();
        my ($self,$num) = @_;
        return $self->{num} + $num;
    }
    package main;
    use Memoize;
    memoize(
        "Other::Add",
        NORMALIZER => sub {
            my ($self,$num) = @_;
            join "::", $self->{num}, $num;
        }
    );
    my $obj = bless { num => 2 }, "Other";
    say($obj->Add(3)) for 1..3;
    $obj->{num} = 4;
    say($obj->Add(3)) for 1..3;
'
[2024/05/10-10:22:08.164] --> [2] Add ...
5
5
5
[2024/05/10-10:22:08.175] --> [2] Add ...
7
7
7


#############################################################
## Perl Modules - Memoize::Storable
#############################################################

# Persistent cache using Memoize::Storable


#############################################################
## Perl Modules - Modern::Perl
#############################################################

# Modern::Perl defaults to v5.12 (bug!?)
perl -E 'say $^V'
v5.36.0
perl -Modern::Perl -e 'say Modern::Perl::validate_date(2022)'
:5.34
perl -Modern::Perl -e 'say Modern::Perl::validate_date()'
:5.12
perl                    -E 'sub abc ($n) {$n}'
perl -Modern::Perl=2022 -e 'sub abc ($n) {$n}'
perl -Modern::Perl      -e 'sub abc ($n) {$n}'
Illegal character in prototype for main::abc : $n at -e line 1.
Global symbol "$n" requires explicit package name (did you forget to declare "my $n"?) at -e line 1.
Execution of -e aborted due to compilation errors.


#############################################################
## Perl Modules - Module::CoreList, corelist
#############################################################

# Find perl module
perl -MModule::CoreList -le 'print for Module::CoreList->find_modules("Class")'
cpan -l | grep -e '^Class'

# Find all available modules for a certain version
perl -MModule::CoreList -le 'print for Module::CoreList->find_modules(/5.010/)'

# Find find release of a perl module
corelist Data::Dumper

# Find all release versions of a perl module
corelist -a Data::Dumper

# Find the release date of a perl version
corelist -r 5.005		# Perl 5.005 was released on 1998-07-22

# Find modules installed with a specific
# perl version.
corelist –v 5.038


#############################################################
## Perl Modules - Module::Refresh
#############################################################

# Perl Modules - Module::Refresh
# My.pm:
#
#!/usr/bin/env perl
package My;
use strict;
use warnings;
use parent qw( Exporter );
our @EXPORT = qw( Run );
sub Run { print "111\n" }
1;
#
perl -I. -MModule::Refresh -E 'use My; Run(); say qq(before: $INC{"My.pm"}); Module::Refresh->refresh_module("My.pm"); say qq(after: $INC{"My.pm"}); Run()'
111
before: My.pm
after: My.pm
Undefined subroutine called at -e line 1.

# Cannot undef, delete, and require a subroutine.
# My.pm:
package My;
sub Run { print "111\n" }
1;
#
perl -e '
    require My;



( run in 0.869 second using v1.01-cache-2.11-cpan-fd5d4e115d8 )