[Cascavel-pm] Dúvidas quanto as opções '>' e '+>' para abertura de arquivos

Donato Azevedo donatoaz em gmail.com
Quarta Setembro 9 06:03:25 PDT 2009


2009/9/9 Giuliani Deon Sanches <giulianisanches em gmail.com>:
>
> A diferença teorica de '>' e '+>' eu entendi já na leitura da
> documentação. A questão era mais pelo fato de que eu abri o arquivo
> com '>' retornei o handle para outra função e essa fez a leitura dele
> do inicio ao fim sem problemas como se eu tivesse aberto o arquivo com
> '+>', entende ? :)
>
> Agradeço pela questão 3, vou estudar o pedaço de código e tentar usar
> ele para o que preciso.

Ei Giuliani, você pode se aproveitar deste mecanismo (o -i) dentro de
um script também. É só setar a variável especial.
Segue um exemplo de um pequeno script meu que faz inplace de uma série
de arquivos:

<code>
use strict;
use File::Find::Rule;

my $dir = '.'
@ARGV = (File::Find::Rule->file()->name(qw/*.fdf *.FDF/)->in($dir));
$^I = '.bak';

local $/ = "\n\n"; # itera por parágrafos e não linebreaks
while (<>) {
	s/C\[ 1 0 0\]/C\[ 1 1 0\]\/IC\[ 1 1 0\]/s, s/\/CA
\d(?:[\.\d]+)?\//\/CA $DefOpacity\//s,
s/\/Contents\(.*\)\//\/Contents\(ERASED!\)\//s if
/\/NM\((?<uid>[\d\w-]+)\)/s && scalar( grep {/$+{uid}/} @UIDs );
    print;
}
</code>

Ele salva os arquivos backup com a extensão .bak

qualquer outra dúvida pode perguntar!

cheers!
-- 
Donato Azevedo


Mais detalhes sobre a lista de discussão Cascavel-pm