Warning: this is a htmlized version!
The original is across this link.
#######
#
# E-scripts on Perl, Apache and cgis.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/a/e/perl.e>
#           or at <http://angg.twu.net/e/perl.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/a/.emacs[.html]>,
#                 <http://angg.twu.net/a/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######




#######
#
# opcodes
#
#######

pdsc /debian/main/source/interpreters/perl_5.004.04-6.dsc
cd /usr/src/perl-5.004.04

# 
# (find-fline "/usr/src/perl-5.004.04/debian/rules" "-D optimize='-O2' ")

debian/rules binary |& tee odrb





#######
#
# Indexing
#
#######

cd /usr/lib/perl5/
find * -type f | grep -v '\.so$\|\.a$' > .files




#######
#
# promit
#
#######

# (find-fline "~/PERL/promit")
# (setq w3-reuse-buffers 'yes)
# (w3-open-local "/snarf/http/agora.leeds.ac.uk/Perl/start.html")

http://agora.leeds.ac.uk/Perl/start.html

Operações importantes: limpa os espaços, 

cd /usr/lib/perl5/
pod2man CGI.pm | groff -Tascii -man | l


echo foobarplic | sed s/o/O/g
echo foobarplic | sed 's/[oa]//g'

# (find-fline "~/PERL/mysed")





#######
#
# CGI.pm
#
#######

# (find-fline "/usr/doc/perl/examples/cgi/")
# (find-pl5file "")
# (find-pl5file "CGI/")
# (find-pl5file "CGI.pm")
# (find-pl5file "CGI.pm" "=head1 DEBUGGING")

# (find-pl5file "CGI.pm" "strong")
# (find-pl5file "CGI.pm" "as_string")

# (find-fline "/etc/apache/")
# (find-fline "/etc/apache/httpd.conf")
# (find-fline "/etc/apache/srm.conf" "/var/www")
# (find-fline "/etc/apache/srm.conf" "AddHandler cgi-script .cgi")

# (find-fline "/usr/doc/perl/examples/cgi/")
# (find-fline "/var/www/perlex/")

rm -Rv /var/www/perlex/
mkdir /var/www/perlex/
cd /var/www/perlex/
cp -iv /usr/doc/perl/examples/cgi/* .
gzip -dv *
perl RunMeFirst

chmod 755 *.cgi
chown edrx:edrx -Rc /var/www/perlex

# (w3-fetch "http://0/perlex/")
lynx http://0.0.0.0/perlex/


# (find-fline "/var/www/perlex/tryit.cgi")
cd /var/www/perlex/
tryit.cgi ''
tryit.cgi name=Edrx%20Foo color=Blue


# (find-pl5podfile "perlfaq4.pod")
# (find-pl5podfile "perlfaq5.pod")
# (find-pl5podfile "perlfaq6.pod")
# (find-pl5podfile "perlfaq7.pod")
# (find-pl5podfile "perlfaq8.pod")
# (find-pl5podfile "perlfaq9.pod" "send/read mail")

dpkg -i ~/HASH/mailtools
# (find-pl5file "Mail/")
# (find-pl5file "Mail/Send.pm")
# (find-pl5file "auto/Mail/")
# (find-fline "~/PERL/m")

    use Mail::Internet;
    use Mail::Header;
    # say which mail host to use
    $ENV{SMTPHOSTS} = 'mail.frii.com';
    # create headers
    $header = new Mail::Header;
    $header->add('From', 'gnat@frii.com');
    $header->add('Subject', 'Testing');
    $header->add('To', 'gnat@frii.com');
    # create body
    $body = 'This is a test, ignore';
    # create mail object
    $mail = new Mail::Internet(undef, Header => $header, Body => \[$body]);
    # send it
    $mail->smtpsend or die;



cd /var/www/perlex/
a2ps -o ~/o.ps -M A4dj -6 -A --highlight-level=none $(
  cat index.html |
  perl -e 'foreach $li (<STDIN>) {$li =~ s/.*"(.*.cgi)".*/$1/ && print $li;}')
cd
rm o.p[0-9][0-9]
gs -sDEVICE=djet500 -r300 -sOutputFile=o.p%02d -dNOPAUSE -dBATCH o.ps
rm o.zip; zip o.zip o.p0?
laf o.zip


cat index.html |
  perl -e 'foreach $li (<STDIN>) { print $li;}' 



# (find-pl5file "CGI.pm")
# (find-pl5file "CGI.pm")
# (find-pl5file "pod/perlmod.pod")
qualified



# (w3-open-local "/usr/doc/HOWTO/html/Java-CGI-HOWTO.html")






#####
#
# dwww
#
#####

# (find-hamm "dwww")




######
#
# Embedding Perl in text
#
######

#!/usr/bin/perl
print "a$BO\n";
print 'b$BO\n';
print 'c', 'foo';
print "\n\n\n";

(defun p ()
  (interactive)
  (write-region (get-register ?b) (get-register ?e) "~/PERL/p")
  (set-file-modes "~/PERL/p" 511))


#!/usr/bin/perl
$_ = "foo_bar";
print "Ok\n" if /.*foo.*/;
print /.*o\(.*a\).*/;

print "hello", "\n";
print ($a = [1, 2, 3]), "\n";

# (find-fline "~/PERL/tut0")

#!/usr/bin/perl
# (set-file-modes (buffer-file-name) 511)





######
#
# Docs
#
######

/snarf/ftp/agora.leeds.ac.uk/scs/doc/whole-perl-tutorial.readme
/snarf/http/www.eecs.nwu.edu/perl/perl.html

(find-fline "~/ZHTML/texps.ht")
(find-fline "/snarf/ftp/agora.leeds.ac.uk/scs/doc/whole-perl-tutorial.txt.gz")
(find-fline "/usr/doc/perl/examples")

(find-fline "/usr/doc/perl/examples/cgi/")




#######
#
# PROMIT
#
#######

Enrique,

Temos um pepino no PROMIT que eu gostaria de dar uma força e pensei se
o Zico não podia tentar resolver esta. Vê o que você acha.

Quem quer se associar ao PROMIT precisa se candidatar e enviar 3 URLs
com trabalhos desenvolvidos. Uma comissão vai analisar o trabalho do
sujeito e dar notas que vão reprovar ou aprovar a associação.

A coisa funcionaria da seguinte forma:

Estariam nomeados até três pessoas de cada área (comunicação,
tecnologia e design). Numa página teríamos os links para o trabalho do
sujeito e um pulldown com notas de 1 até 10. Os jurados teriam o
compromisso de visitar esta página constantemente (sugiro colocar como
home do browser) O primeiro de cada área que aparecer para olhar dá
sua nota. Com uma nota de cada área faz-se a média final. Com a média
final temos a aprovação ou reprovação do candidato. Candidatos que
receberem qualquer nota inferior a 2 são eliminados. Candidatos com
média >= 6 são aprovados.

Minha idéia é ter uma página dinâmica que inclui os novos candidatos e
suas URLs. Do lado tem espaço para notas nas três categorias. No
final, o sistema faz a média e aprovando, manda um e-mail para o
camarada. Reprovando, a diretoria vai ter que entrar em contato e
conversar...



candidato->curl1,curl2,curl3

Comandos possíveis (módulo correções): cr - um candidato se registra,
já dando as suas três urls. Logo antes dele confirmar o registro ele
ganha uma página de onde ele pode visitar as suas três urls e apertar
o botão vermelho que faz o registro mesmo. jr - juiz registra - ele
ganha um número de registro e uma lista de urls esperando julgamento.
Pode haver algum sistema de locking em que uma página é marcada como
"em julgamento"; os juízes podem pôr comentários a qualquer momento.
jnv - o juiz número tal vota a nota tanto para a página tal. Só a
primeira nota conta, as outras são só guardadas (notas e comentários
são guardados junto com a hora em que aconteceram).

A história do sistema é uma série de linhas tipo

h1 c1r u1a u1b u1c	- na hora 1 o candidato 1 registrou as urls
			  u1a, u1b, u1c
h2 j1r			- na hora 2 o juiz 1 se registra (e ganha seu
			  número)
h3 j1 a1.u1b		- na hora 3 o juiz 1 põe o aviso 1 na url u1b
h4 c2r u2a u2b u2c	- na hora 4 o candidato 2 se registra
h5 j1 v1.u1b		- na hora 5 o juiz 1 põe a nota v1 na url u1b




#######
#
# a2ps on some docs
#
#######

l ~/TCL/spawn-send-expect-interact

a2ps -8 -M A4dj -o ~/o.ps /usr/lib/perl5/CGI.pm
rm ~/o.p[0-9][0-9]
cd
gs -sDEVICE=djet500 -r300 -sOutputFile=o.p%02d -dNOPAUSE -dBATCH o.ps
rm o.zip; zip o.zip o.p0{1,2,3,4,5,6,7}
rm o.zip; zip o.zip o.p{0{8,9},1{0,1}}

# (find-node "(a2ps)Top")
# (find-node "(a2ps)Sheets Options")
# (find-fline "/usr/share/a2ps/sheets/")
# (find-fline "/usr/share/a2ps/sheets/perl.ssh")





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

cd /usr/lib/perl5/
etags $(find * -name '*.p[ml]')
# (code-c-d "pl5" "/usr/lib/perl5/")
# (find-pl5file "CGI.pm")

# (find-enode "Programs")
# (find-enode "Font Lock")
# (global-font-lock-mode t)
# (list-faces-display)

# (find-pl5file "i386-linux/5.004/DynaLoader.pm")
# (find-pl5file "i386-linux/5.004/auto/DynaLoader/")
# (find-pl5file "pod/perlxs.pod")
# (find-pl5file "pod/perlxstut.pod")




######
#
# perl-tk
#
######

# (find-fline "/usr/doc/perl-tk/")
# (find-fline "/usr/lib/perl5/Tk/")
# (code-c-d "ptk" "/usr/src/perl-tk-400.202/")
# (find-ptkfile "Manifest")
# (find-ptkfile "")

debsource /debian/main/source/interpreters perl-tk 400.202 -9
cd /usr/src/perl-tk-400.202/
cd /usr/src/perl-tk-400.202/demos/
widget




#####
#
# Sending MIME'd mail with MIME::Lite (and zsh)
#
#####

#  «mimelite_zsh1»
# Old version:

function mailfile () {
  TO=$1 FILE=$2 perl -e '
    use lib "$ENV{HOME}/PERL/";
    use MIME::Lite;
    $msg = new MIME::Lite
        # From  => $ENV{"FROM"},
        To      => $ENV{"TO"},
        Subject => $ENV{"FILE"},
        Data    => "";
    attach $msg
        Encoding => "base64",
        Type     => "BINARY",
        Path     => $ENV{"FILE"},
        Filename => $ENV{"FILE"};
    if (open SENDMAIL, "|/usr/sbin/sendmail -t -oi -oem") {
        $msg->print(\*SENDMAIL);
        close SENDMAIL;
    } else {
        print "Erro interno no sendmail: !=$!, ?=$?.\n";
    }'
}
# Demo:
cd ~/GIMP/; mailfile edrx tmp.jpg



#  «mimelite_zsh2»
# New version:

# Note that I'm using "su -s /usr/sbin/sendmail edrx --" instead of
# simply "/usr/sbin/sendmail".
function email_mimelite () {
  perl -e 'use lib "$ENV{HOME}/PERL/"; use MIME::Lite;
    '$1'
    if (open SENDMAIL, "|su -s /usr/sbin/sendmail edrx -- -t -oi -oem") {
      $msg->print(\*SENDMAIL); close SENDMAIL;
    } else { print "Erro interno no sendmail: !=$!, ?=$?.\n";
    }'
}
function email850 () {
  850toiso | TO=$1 SUBJ=$2 email_mimelite '
    undef $/;
    $msg = new MIME::Lite
      To       => $ENV{"TO"},
      Subject  => $ENV{"SUBJ"},
      Encoding => "quoted-printable",
      Data     => <>;'
}
function emailfile () {
  TO=$1 FILE=$2 email_mimelite '
    $msg = new MIME::Lite
      To      => $ENV{"TO"},
      Subject => $ENV{"FILE"},
      Data    => "";
    attach $msg
      Encoding => "base64",
      Type     => "BINARY",
      Path     => $ENV{"FILE"},
      Filename => $ENV{"FILE"};'
}

# Demos:
email850 edrx 'no subject' < ~/PERSONAL/99jun24
cd ~/GIMP/; emailfile edrx tmp.jpg





#####
#
# CPAN
# 99nov27
#
#####

# (find-fline "~/ICON/lslR2find.icn")
# (find-fline "$SDEBIAN/ls-lR")
# (find-fline "$SDEBIAN/ls-lR.i")
# (find-fline "$SCPAN/ls-lR")
# (find-fline "$SCPAN/ls-lR.i")

psne $FCPAN/ls-lR.gz
cd $SCPAN
gzip -dv ls-lR.gz

cd $SCPAN
~/ICON/lslR2find2 25 33 47 < ls-lR > ls-lR.i

psne $FCPAN/authors/id/LDS/CGI.pm-2.56.tar.gz




cd $SCPAN
~/ICON/lslR2find 2 -10 < ls-lR |& l -S
~/ICON/lslR2find 1 -10 < ls-lR |& l -S
~/ICON/lslR2find 0 -10 < ls-lR |& l -S

~/ICON/lslR2find 0 -8 < ls-lR |& l -S

cd $SCPAN
~/ICON/lslR2find2 25 33 46 < ls-lR |& l -S
~/ICON/lslR2find2 26 33 47 < ls-lR |& l -S
~/ICON/lslR2find2 27 34 48 < ls-lR |& l -S