-------------------------
http://search.cpan.org/search?mode=module;query=%s
-------------------------
http://search.cpan.org/perldoc/%s
-------------------------
http://www.annocpan.org/?mode=search;field=Module;latest=1;name=%s
-------------------------
$ perldoc -f substr
-------------------------
$ perldoc -q shuffle
-------------------------
$ perldoc -q "Perl ?6"
-------------------------
$ perldoc -oHTML -dperltoc.html perltoc
-------------------------
$ perldoc -l Test::Tutorial
/usr/lib/perl5/vendor_perl/5.8.7/Test/Tutorial.pod

$ perldoc -l perluniintro
/usr/lib/perl5/5.8.7/pod/perluniintro.pod
-------------------------
$ perldoc -m Test::MockObject
-------------------------
$ podwebserver
-------------------------
$ podwebserver -H windwheel -p 8080
-------------------------
#!/bin/sh

podwebserver &
sleep 2
firefox -remote 'openurl( http://localhost:8020/, new-tab)'
-------------------------
$ podweb
-------------------------
source ~/.aliases
-------------------------
alias realias='$EDITOR ~/.aliases; source ~/.aliases'
-------------------------
alias reperl='perl -de0'
-------------------------
$ reperl

Loading DB routines from perl5db.pl version 1.28
Editor support available.

Enter h or 'h h' for help, or 'man perldebug' for more help.

main::(-e:1):   0
  DB<1> q
-------------------------
alias newperl='/usr/local/bin/perl5.8.8'
alias oldperl='/usr/local/bin/perl5.6.2'
-------------------------
alias newdbperl='perl -M/home/dev/newlib/'
alias olddbperl='perl -M/home/dev/oldlib/'
-------------------------
alias testcover='cover -delete; ./Build testcover; cover'
-------------------------
alias makepugs='PARROT_PATH="/home/chromatic/dev/parrot" \
    PUGS_EMBED="perl 5 parrot" \
    perl Makefile.PL && make'
-------------------------
$ perl -MCGI::Application -le 'print CGI::Application->VERSION'
4.03
-------------------------
function pmver (  ) { perl -M$1 -le "print $1->VERSION"; }
-------------------------
alias pmver="perl -le '\$m = shift; eval qq(require \$m)
   or die qq(module \"\$m\" is not installed\\n); print \$m->VERSION'"
-------------------------
$ pmver CGI::Application
4.03
-------------------------
alias gvim='perl -we "exec q{/cygdrive/c/Progra~1/Vim/vim63/gvim.exe},
  map { s/^(.*)$/(-f \$1)?qx{cygpath -aw \"\$1\"}:\$1/e; chomp; \$_; }
  (@ARGV); "'
-------------------------
alias winrun='exec 'cmd', "/c", ((split '/',$0)[-1], map {
  s/^(.*)$/(-f $1)?qx{cygpath -w "$1"}:$1/e;chomp;$_; } (@ARGV));'
-------------------------
 sub find_the_factorial_of
 {
     my ($the_number_whose_factorial_I_want) = @_;

     return 1 if $the_n<CTRL-N> <= 1;

     return $the_n<CTRL-N> * find<CTRL-N>($the_n<CTRL-N> - 1);
 }
-------------------------
set iskeyword+=:
-------------------------
 use Sub::Normal;

 my $sub = Sub<CTRL-N>->new(  );  # Rozwija si w: Sub::Normal->new(  )
-------------------------
set complete+=k~/.vim_extras/plik_z_list_wszystkich_zainstalowanych_moduw_Perla
-------------------------
uuse File::Find 'find';

# Gdzie naley utworzy list...
my $LIST_DIR  = "$ENV{HOME}/.vim_extras/"
my $LIST_FILE = "plik_z_list_wszystkich_zainstalowanych_moduw_Perla";

# Upewnij si, e katalog jest dostpny...
unless (-e $LIST_DIR )
{
    mkdir $LIST_DIR
        or die "Nie mona utworzy katalogu $LIST_DIR ($!)\n";
}

# Utwrz (ponownie) plik...
open my $fh, '>', "$LIST_DIR$LIST_FILE"
    or die "Nie mona utworzy pliku '$LIST_FILE' ($!)\n";

# Raportuj kady modu tylko raz (za pierwszym pojawieniem)...
my %already_seen;

# Przejrzyj katalogi zawierajace moduy, odnajdujc pliki .pm...
for my $incl_dir (@INC)
{
    find
    {
        wanted => sub
        {
            my $file = $_;

            # Musz si koczy na .pm...
            return unless $file =~ /\.pm\z/;

            # Konwertuj nazw cieki na nazw moduu...
            $file =~ s{^\Q$incl_dir/\E}{  };
            $file =~ s{/}{::}g;
            $file =~ s{\.pm\z}{  };

            # Obsuguj standardowe podkatalogi (takie jak site_perl/ or 5.8.6/)...
            $file =~ s{^.*\b[a-z_0-9]+::}{  };
            $file =~ s{^\d+\.\d+\.\d+::(?:[a-z_][a-z_0-9]*::)?}{  };
            return if $file =~ m{^::};

            # Wywietl nazw moduu (tylko raz)...
            print {$fh} $file, "\n" unless $already_seen{$file}++;
        },
        no_chdir => 1,
    }, $incl_dir;
}
-------------------------
(defadvice cperl-indent-command
    (around cperl-indent-or-complete)
    "Zmienia \\[cperl-indent-command] tak, e wykonuje autouzupenienie na kocu sowa."
    (if (looking-at "\\>")
        (dabbrev-expand nil)
      ad-do-it))
  (eval-after-load "cperl-mode"
    '(progn (require 'dabbrev) (ad-activate 'cperl-indent-command)))
-------------------------
(load-library "cperl-mode")
  (add-to-list 'auto-mode-alist '("\\.[Pp][LlMm][Cc]?$" . cperl-mode))
  (while (let ((orig (rassoc 'perl-mode auto-mode-alist)))
              (if orig (setcdr orig 'cperl-mode))))
  (while (let ((orig (rassoc 'perl-mode interpreter-mode-alist)))
           (if orig (setcdr orig 'cperl-mode))))
  (dolist (interpreter '("perl" "perl5" "miniperl" "pugs"))
    (unless (assoc interpreter interpreter-mode-alist)
      (add-to-list 'interpreter-mode-alist (cons interpreter 'cperl-mode))))
-------------------------
(global-set-key "\M-p" 'cperl-perldoc) ; alt-p
-------------------------
 (global-set-key "\M-p" '(lambda (  ) (interactive)
   (require 'w3m)
   (w3m-goto-url "http://localhost:8020/")
 ))
-------------------------
(global-set-key "\M-p"
  '(lambda (  ) (interactive) (start-process "" nil
  "firefox" "http://localhost:8020/"
  ; Lub jeli wczymy nasz ulubion przegldark: 
  ;   "gnome-terminal" "-e" "lynx http://localhost:8020/"
  ;   "xterm" "-e" "elinks http://localhost:8020/"
)))
-------------------------
(require 'pod-mode)
(add-to-list 'auto-mode-alist
  '("\\.pod$" . pod-mode))
; Warto byoby moe rwnie wczy domylnie
;   nastpujce funkcje dla Pod:
(add-hook 'pod-mode-hook '(lambda (  ) (progn
 (font-lock-mode)   ; =syntax highlighting
 (auto-fill-mode 1) ; =wordwrap
 (flyspell-mode 1)  ; =spellchecking 
)))
-------------------------
$_= <<'EOL';
   $url = URI::URL->new( "http://www/" );   die if $url eq "xXx";
EOL
LOOP:{print(" cyfry"),redo LOOP if/\G\d+\b[,.;]?\s*/gc;print(" mae litery"),
redo LOOP if/\G[a-z]+\b[,.;]?\s*/gc;print(" DUE LITERY"),redo LOOP
if/\G[A-Z]+\b[,.;]?\s*/gc;print(" Pierwsza dua"),
redo LOOP if/\G[A-Z][a-z]+\b[,.;]?\s*/gc;
print(" RnE"),redo LOOP if/\G[A-Za-z]+\b[,.;]?\s*/gc;print(
" alfanumeryczne"),redo LOOP if/\G[A-Za-z0-9]+\b[,.;]?\s*/gc;print(" szum"
),redo LOOP if/\G[^A-Za-z0-9]+/gc;print". To wszystko!\n";}
-------------------------
$_ = <<'EOL';
   $url = URI::URL->new( "http://www/" );   die if $url eq "xXx";
EOL
LOOP: {
    print(" cyfry"),          redo LOOP if /\G\d+\b[,.;]?\s*/gc;
    print(" mae litery"),    redo LOOP if /\G[a-z]+\b[,.;]?\s*/gc;
    print(" DUE LITERY"),    redo LOOP if /\G[A-Z]+\b[,.;]?\s*/gc;
    print(" Pierwsza dua"),  redo LOOP if /\G[A-Z][a-z]+\b[,.;]?\s*/gc;
    print(" RnE"),          redo LOOP if /\G[A-Za-z]+\b[,.;]?\s*/gc;
    print(" alfanumeryczne"), redo LOOP if /\G[A-Za-z0-9]+\b[,.;]?\s*/gc;
    print(" szum"),           redo LOOP if /\G[^A-Za-z0-9]+/gc;
    print ". To wszystko!\n";
}
-------------------------
 -ci=4 # zrb wcicie 4 spacji podczas amania dugiego wiersza 
 -et=4 # zastp 4 pocztkowe spacje tabulatorem 
 -bl   # Umie w nowych wierszach otwierajce nawiasy 
-------------------------
map ,pt  <Esc>:%! perltidy<CR>
map ,ptv <Esc>:'<,'>! perltidy<CR>
-------------------------
(defmacro mark-active ()
    "Xemacs/emacs compatibility macro"
    (if (boundp 'mark-active)
        'mark-active
      '(mark)))
(defun perltidy (  )
  "Uruchom perltidy na biecym obszarze lub buforze."
  (interactive)
  ; Inexplicably, save-excursion doesn't work here.
  (let ((orig-point (point)))
    (unless (mark-active) (mark-defun))
    (shell-command-on-region (point) (mark) "perltidy -q" nil t)
    (goto-char orig-point)))
(global-set-key "\C-ct" 'perltidy)
-------------------------
(defvar perltidy-mode nil
    "Automatycznie wykonuj 'perltidy' podczas zachowywania.")
  (make-variable-buffer-local 'perltidy-mode)
  (defun perltidy-write-hook ()
    "Oczyszcza bufer podczas 'write-file-hooks' dla trybu 'perltidy-mode'"
    (if perltidy-mode
        (save-excursion
          (widen)
          (mark-whole-buffer)
          (not (perltidy)))
      nil))
  (defun perltidy-mode (&optional arg)
    "Podrzdny tryb perltidy."
    (interactive "P")
    (setq perltidy-mode
          (if (null arg)
              (not perltidy-mode)
            (> (prefix-numeric-value arg) 0)))
    (make-local-hook 'write-file-hooks)
    (if perltidy-mode
        (add-hook 'write-file-hooks 'perltidy-write-hook)
      (remove-hook 'write-file-hooks 'perltidy-write-hook)))
  (if (not (assq 'perltidy-mode minor-mode-alist))
      (setq minor-mode-alist
            (cons '(perltidy-mode " Perltidy")
                  minor-mode-alist)))
  (eval-after-load "cperl-mode"
    '(add-hook 'cperl-mode-hook 'perltidy-mode))
-------------------------
filetype plugin on
-------------------------
" perl_synwrite.vim: sprawdzanie skadni Perla przed zapisywaniem 
" najnowsza wersja dostpna pod adresem: http://www.vim.org/scripts/script.php?script_id=896

"" przerwij jeli b:did_perl_synwrite jest true: ju zaadowane lub preferencje uytkownika 
if exists("b:did_perl_synwrite")
  finish
endif
let b:did_perl_synwrite = 1

"" przypisz buforowi :au pref: jeli zdefiniowane globalnie, dziedzicz; w przeciwnym razie, false
if (exists("perl_synwrite_au") && !exists("b:perl_synwrite_au"))
  let b:perl_synwrite_au = perl_synwrite_au
elseif !exists("b:perl_synwrite_au")
  let b:perl_synwrite_au = 0
endif

"" przypisz buforowi quickfix pref: jeli zdefiniowane globalnie, dziedzicz; w przeciwnym razie, false:
if (exists("perl_synwrite_qf") && !exists("b:perl_synwrite_qf"))
  let b:perl_synwrite_qf = perl_synwrite_qf
elseif !exists("b:perl_synwrite_qf")
  let b:perl_synwrite_qf = 0
endif

"" wykonaj okrelone polecenie do_command jeli bufor zawiera poprawny skadniowo kod Perla 
"" -- lub jeli do_anyway jest true
function! s:PerlSynDo(do_anyway,do_command)
  let command = "!perl -c"

  if (b:perl_synwrite_qf)
    " ta zmienna rodowiskowa poleca Vi::QuickFix zastpi "-" rzeczywist nazw pliku
    let $VI_QUICKFIX_SOURCEFILE=expand("%")
    let command = command . " -MVi::QuickFix"
  endif

  " respektuj sprawdzanie, czy kod jest nieskaony
  if (match(getline(1), "^#!.\\+perl.\\+-T") == 0)
    let command = command . " -T"
  endif

  exec "write" command

  silent! cgetfile " sprbuj odczyta plik bdw 
  if !v:shell_error || a:do_anyway
    exec a:do_command
    set nomod
  endif
endfunction

"" wcz autocommand, jeli b:perl_synwrite_au jest true
if (b:perl_synwrite_au > 0)
  let b:undo_ftplugin = "au! perl_synwrite * " . expand("%")

  augroup perl_synwrite
    exec "au BufWriteCmd,FileWriteCmd " . expand("%") .
         " call s:PerlSynDo(0,\"write <afile>\")"
  augroup END
endif

"" polecenie :Write 
command -buffer -nargs=* -complete=file -range=% -bang Write call \
    s:PerlSynDo("<bang>"=="!","<line1>,<line2>write<bang> <args>")
-------------------------
silent call system("perl -e0 -MVi::QuickFix")
let perl_synwrite_qf = ! v:shell_error
-------------------------
au BufRead,BufNewFile *.t
               set ft=perl
-------------------------
(defvar perl-syntax-bin "perl"
    "Plik binarny perla wykorzystywany do sprawdzania skadni.")
  (defun perl-syntax-check-only ()
    "Zwraca albo nil albo t w zalenoci od tego, czy \
     biecy bufor przejdzie test poprawnej skadni Perla."
    (interactive)
    (let ((buf (get-buffer-create "*Perl syntax check*")))
      (let ((syntax-ok (= 0 (save-excursion
                              (widen)
                              (call-process-region
                               (point-min) (point-max) perl-syntax-bin nil buf nil "-c"))) ))
        (if syntax-ok (kill-buffer buf)
          (display-buffer buf))
        syntax-ok)))
  (defvar perl-syntax-mode nil
    "Sprawd skadni Perla przed zachowaniem.")
  (make-variable-buffer-local 'perl-syntax-mode)
  (defun perl-syntax-write-hook ()
    " Sprawd skadni Perla w trakcie `write-file-hooks' dla trybu 'perl-syntax-mode'"
    (if perl-syntax-mode
        (save-excursion
          (widen)
          (mark-whole-buffer)
          (not (perl-syntax-check-only)))
      nil))
  (defun perl-syntax-mode (&optional arg)
    "Podrzdny tryb sprawdzania skadni Perla."
    (interactive "P")
    (setq perl-syntax-mode
          (if (null arg)
              (not perl-syntax-mode)
            (> (prefix-numeric-value arg) 0)))
    (make-local-hook 'write-file-hooks)
    (if perl-syntax-mode
        (add-hook 'write-file-hooks 'perl-syntax-write-hook)
      (remove-hook 'write-file-hooks 'perl-syntax-write-hook)))
  (if (not (assq 'perl-syntax-mode minor-mode-alist))
      (setq minor-mode-alist
            (cons '(perl-syntax-mode " Perl Syntax")
                  minor-mode-alist)))
  (eval-after-load "cperl-mode"
    '(add-hook 'cperl-mode-hook 'perl-syntax-mode))
-------------------------
perl /usr/local/bin/check_tidy_file.pl "$REPOS" "$REV"
-------------------------
 #!/usr/bin/perl

 use strict;
 use warnings;

 use Perl::Tidy;
 use File::Temp;
 use File::Spec::Functions;

 my $svnlook      = '/usr/bin/svnlook';
 my $diff         = '/usr/bin/diff -u';

 # poknij argumenty, aby nie dezorientoway Perl::Tidy
 my ($repo, $rev) = @ARGV;
 @ARGV            = (  );

 my @diffs;

 for my $changed_file (get_changed_perl_files( $repo, $rev ))
 {
     my $source = get_revision( $repo, $rev, $changed_file );
     Perl::Tidy::perltidy( source => \$source, destination => \(my $dest) );
     push @diffs, get_diff( $changed_file, $source, $dest );

 }
 report_diffs( @diffs );

 sub get_changed_perl_files
 {
     my ($repo, $rev) = @_;

     my @files;

     for my $change (`$svnlook changed $repo -r $rev`)
     {
         my ($status, $file) =  split( /\s+/, $change );
         next unless $file   =~ /\.p[lm]\z/;
         push @files, $file;
     }

     return @files;
 }

 sub get_revision
 {
     my ($repo, $rev, $file) = @_;
     return scalar `$svnlook cat $repo -r $rev $file`;
 }

 sub get_diff
 {
     my $filename        = shift;
     return if $_[0] eq $_[1];

     my $dir   = File::Temp::tempdir(  );
     my @files = map { catdir( $dir, $filename . $_ ) } qw( .orig .tidy );

     for my $file (@files)
     {
         open( my $out, '>', $file ) or die "Nie mona zachowa pliku $file: $!\n";
         print $out shift;
         close $out;
     }

     return scalar `$diff @files`;
 }

 sub report_diffs
 {
     for my $diff (@_)
     {
         warn "Bd:\n$diff\n";
     }
 }
-------------------------
map ,t  <Esc>:!prove -vl %<CR>
-------------------------
map ,t  <Esc>:!prove -Iwork/ -v %<CR>
-------------------------
map ,T  <Esc>:!prove -lv % \| less<CR>
-------------------------
map ,t  <Esc>:!prove -v %<CR>
-------------------------
use lib '../../lib';
-------------------------
(eval-after-load "cperl-mode"
    '(add-hook 'cperl-mode-hook
       (lambda () (local-set-key "\C-ct" 'cperl-prove))))
  (defun cperl-prove ()
    "Uruchom aktualny test."
    (interactive)
    (shell-command (concat "prove -v "
      (shell-quote-argument (buffer-file-name)))))
-------------------------
perl -e 'print time(  ) >> 8;'
-------------------------
% perl -de1

Loading DB routines from perl5db.pl version 1.27
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

main::(-e:1):    1
  DB<1> p time(  ) >> 8
4448317
  DB<2>
-------------------------
(defun perl-eval (beg end)
  "Uruchom wybrany region jako kod Perla"
  (interactive "r")
  (shell-command-on-region beg end "perl")
   ; przesya region do interpretera perl przez STDIN
)
-------------------------
(global-set-key "\M-\C-p" 'perl-eval)
-------------------------



