App-Cheats

 view release on metacpan or  search on metacpan

cheats.txt  view on Meta::CPAN


# Restart container for CLI
docker start -a -i 99150a04a616

# Run interactive container (bash shell)
docker run -it perl bash

# Go inside a running container.
docker container exec -it feedback-app bash

# Build updated perl image.
docker build -t my-perl .
docker run my-perl -E 'say $^V'

# Rename a docker container
docker container rename <CONTAINER_ID> my-perl-container

# Restart a container
docker container start -a my-perl-container


cheats.txt  view on Meta::CPAN

my $command    = qq(libreoffice --headless --convert-to $csv_format $excel_file);
system $command;
die if $?;


#############################################################
## Linux Commands - locate
#############################################################

# Search for a c header file (DES)
sudo updatedb        # If added from apt-get
locate my_header


#############################################################
## Linux Commands - ls, ll
#############################################################

# Apply a character class to list (ls files)
ll *2[1-3]

cheats.txt  view on Meta::CPAN

#############################################################

# Clear NVM/flash memory (from start to and including the end address)
zero -p ppa -s 0xSTART_ADDRESS -e 0xEND_ADDRESS


#############################################################
## Linux Accounts
#############################################################

# Check when a users account was created (good unless file was updated or touched)
ll ~SOME_USER/.bash_logout

# Check when a users account was created (good unless home account changed)
ll -d ~SOME_USER
echo ~SOME_USER | perl -lne 'print for -M,-C,-A'


#############################################################
## Linux Hardware
#############################################################

cheats.txt  view on Meta::CPAN

#
# Tying: HASH(0xb400007e988291f0): {
#   "a" => [
#     0,
#     {
#       "complex" => 1
#     }
#   ]
# }

# Show where a complex data structure is being updated.
perl -MData::DPath -MCarp=longmess -MTie::Watch -Mojo -E 'my $data = {a => [0, {complex => 1}]}; say "\nBefore:"; say r $data; for my $node ( grep {ref} Data::DPath->match($data, "//") ){ say "Tying: $node"; Tie::Watch->new( -variable => $node, -stor...


#############################################################
## Perl Modules - Data::Dumper
#############################################################

# Deparse a subroutine in a data structure
perl -MData::Dumper -le '$ref=sub{print "in sub"}; &$ref; my $d=Data::Dumper->new([$ref])->Deparse(1); print $d->Dump'

cheats.txt  view on Meta::CPAN

            b   2
        },
    [4] 123
]


#############################################################
## Perl Modules - Data::Trace
#############################################################

# Show where a complex data structure is being updated.
cpanm Data::Trace
perl -MData::Trace -Mojo -E 'my $data = {a => [0, {complex => 1}]}; say "\nBefore:"; say r $data; Data::Trace->Trace($data); sub BadCall{ $data->{a}[0] = 1 } say ""; BadCall(); say "After:"; say r $data'

# Data::Trace (WIP).
perl -Me -MData::Trace -E 'get("Kernel::System::Cache")->Set( Type => "Ticket", Key => "ABC", Value => [1..3] ); Data::Trace->Trace( get("Kernel::System::Cache") ); get("Kernel::System::Cache")->Delete( Type => "Ticket", Key => "ABC" )'


#############################################################
## Perl Modules - DBD::mysql
#############################################################

cheats.txt  view on Meta::CPAN


# Parse an outlook message .msg file
perl -MEmail::Outlook::Message -le 'print Email::Outlook::Message->new(shift)->to_email_mime->as_string' "$m"


#############################################################
## Perl Modules - Enbugger
#############################################################

# Using a read,evaluate,print,loop in perl.
# Not updated since 2014 and failing to build.


#############################################################
## Perl Modules - Encode
#############################################################

# Example of using Encode to show string in different supported encodings (broken).
perl -C -MEncode -E '$s1="Ue: Ü"; $s2="Euro: \N{EURO SIGN}"; for ( encodings ) { printf "%-15s: [%-7s] [%s]\n", $_, encode($_,$s1), encode($_,$s2) }'

# Why use Encode?

cheats.txt  view on Meta::CPAN

perl -le '{package P; sub TIESCALAR{my($c,$o)=@_; bless \$o,$c} sub FETCH{my($s)=@_; $$s} sub STORE{my($s,$v)=@_; $$s = $v} } tie $var, "P", 123; print $var; $var=42; print $var'


#############################################################
## Perl Modules - Tie::Watch
#############################################################

# Tie Watch. OOP interface that hides making packages for tied variables
perl -MTie::Watch -le 'my $v=1; Tie::Watch->new(-variable => \$v, -fetch => sub{my $s=shift; $v=$s->Fetch; $s->Store($v+1); $v}); print $v; print $v; print $v'

# Check when a variable is updated. (watcher)
perl -MTie::Watch -Mojo -le 'my $h={a => [1..2]}; say r $h; Tie::Watch->new( -variable => \$h->{a}, -store => sub{my ($s,$v) = @_; $s->Store($v); my $Scope = 0; while( my ($Pkg,$Line) = caller(++$Scope) ){ say "$Pkg:$Line" } }); sub func{$h->{a}=456}...

# Check when a variable is updated. (watcher)
use Tie::Watch;
Tie::Watch->new(
   -variable => \$Self->{Cache}->{ $Param{Type} }->{ $Param{Key} },
   -store    => sub{
       my ($S,$Value) = @_;
       $S->Store($Value);
       my $Scope = 0;
       my $Limit = 5;
       while( my ($Package,$Line) = (caller(++$Scope))[0,2] ){
          next if $Package =~ /\ATie::/;



( run in 0.256 second using v1.01-cache-2.11-cpan-05444aca049 )