#!/usr/bin/perl our %parametros; while($para=shift) { $parametros{$1}=$2 if $para =~ /^--(.+)=(.+)$/; $parametros{arquivo}=$para unless $para =~ /^--(.+)=(.+)$/; } descobre_linguagem($arquivo) unless our $linguagem=$parametros{linguagem}; our $arquivo=$parametros{arquivo}; our $nivel=0 unless $nivel=$parametros{nivel}; comenta_codigo(); sub comenta_codigo() { open(ARQ, $arquivo) or die "Arquivo '$arquivo' não encontrado"; for(){ $linhas++; $teste=$_; chomp($teste); unless($teste =~ /^\s*#/) { open(RC, "/etc/comentarios") or die "Arquivo de configuração '/etc/comentarios' não encontrado"; for(){ $_ =~ //; $eni=$1; if($_ =~ /<$linguagem>/i and $eni >= $nivel) { $_ =~ /(.+)<\/expr>/; $expre=$1; chomp($expre); $_ =~ /(.+)<\/coment>/; $comen=$1; chomp($comen); if($teste =~ /$expre/) { @vetor=split(/\[|\]/, $comen); $i=0; while($vetor[$i]){ print $vetor[$i].${$vetor[$i+1]}; $i+=2; } print "\n"; $comentarios++; } } } } close RC; print $teste."\n"; open(RC, "/etc/comentarios") or die "Arquivo de configuração '/etc/comentarios' não encontrado"; for(){ if($_ =~ /<$linguagem>/i and $_ =~ //i) { $_ =~ /(.*)<\/expr>/; $expre=$1; chomp($expre); $_ =~ /(.*)<\/coment>/; $comen=$1; chomp($comen); if($teste =~ /$expre/) { @vetor=split(/\[|\]/, $comen); $i=0; while($vetor[$i]){ print $vetor[$i].${$vetor[$i+1]}; $i+=2; } print "\n"; $comentarios++; } } } close RC; } close ARQ; } sub descobre_linguagem() { ($arq)=@_; $arq=~/.*\.([a-z]{1,2})/; $ext=$1; open(LIN, "/etc/comenta.conf") or die "Arquivo de configuração '/etc/comenta.conf' não encontrado"; for() { $a=$_; chomp($a); our $linguagem=$1 if $a =~ /^(.*)=(\w{1,2},)*$ext,?(\w{1,2},?)*$/; return() if $a =~ /^(.*)=(\w{1,2},)*$ext,?(\w{1,2},?)*$/; $linguagem="" unless $a =~ /^(.*)=(\w{1,2},)*$ext,?(\w{1,2},?)*$/; } close LIN; }