Resultados 1 a 7 de 7
  1. #1
    Hacker Avatar de acpguedes
    Data de Ingresso
    Sep 2011
    Localização
    #!/usr/bin/env perl
    Posts
    955

    Question [HELP] Analizando um *.pm

    Peguei um modulo, tal que fora feito pelo fvox,
    no qual é muito simples de usar, muito rapido
    e de muito conveniente em determinados momentos!

    minhas perguntas virão encravadas no codigo

    Código PHP:
    package FLV::AudioExtractor; use strict;use warnings; use Moose;use Carp
    our $VERSION '0.01'#legal esse comando... hahaha
     
    has filename => (    # que diabo de comando é esse "has"... alguem pode explicar
        
    is       => 'rw',  # de preferencia o proprio autor!!! 
        
    isa      => 'Str',    required => 1); 
    sub extract {    my ($self$output) = @_;                                                            # Esse "croak" é o mesmo de "die" ??? caso não explicar tambem
        
    open my $fh'<'$self->filename or croak('Can\'t open ' $self->filename ': '  . $!);
        
    open my $mp3'>'$output or croak('Cant\'t open ' $output ': ' . $!);
        
    binmode $fh;       # Legal, aqui faz ler em modo binario o arquivo
        
    binmode $mp3;      # Mas... como você pegou a parte de audio
                                        # Dentro do binario???
        
    my $offset    13;    my $data_size 0;    my $data      undef;     read($fh$data$offset);     while(((-s $self->filename) - $offset) > $data_size) {        read($fh$data12);
     
            
    my @unpacked unpack('C1 C3 C3 C1 C3 C1'$data); # WTH???
            
    $data_size = ($unpacked[1] << 16) | ($unpacked[2] << 8) | $unpacked[3];
     
            
    read($fh$data, ($data_size 1));
     
            
    my $previous_tag_size undef;
            
    read($fh$previous_tag_size4); 
            if(
    $unpacked[0] == 8) {            print $mp3 $data              if ($unpacked[11] >> 4) == 2;        }         $offset += $data_size 15;    }    close $fh;
        
    close $mp3;
    }
     
    1;
     
    __END__ 
    No mais... muito obrigado!!!
    Endereço do Modulo no CPAN -> mais engraçado é a fotinha dele.... hahaha (decepção)
    Endereço da Source
    -> que já esta no codigo acima!!!
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!

  2. #2
    Gray Hat Avatar de CoderSc
    Data de Ingresso
    Jan 2011
    Localização
    #!/bin/bash
    Posts
    1.736
    que diabo de comando é esse "has"... alguem pode explicar ?
    * CPAN

    Esse "croak" é o mesmo de "die" ??? caso não explicar tambem
    A Mesma questão foi levantada em PerlMonks


    Mas... como você pegou a parte de audio Dentro do binario???
    Também fiquei curioso, no CPAN tem algo a respeito sobre isso.
    Når du føler flove over at se på tras eller bange for at se fremad, se venstre eller højre I be altid ved din side.

    H
    aters Gonna Hate

  3. #3
    Hacker Avatar de acpguedes
    Data de Ingresso
    Sep 2011
    Localização
    #!/usr/bin/env perl
    Posts
    955
    hahaha... Coder... como sempre você sanando as duvidas

    eu suspeito seriamente que o bot do fvox fez um bot seu, e você e ele se foram desse planeta!! hahaha

    agora o bot dos dois ficam trabalhando para o crescimento do forum...
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!

  4. #4
    White Hat Administrador Avatar de fvox
    Data de Ingresso
    Sep 2005
    Localização
    São Paulo - SP
    Posts
    4.428
    Hi.

    Codersc, a intenção foi boa mas o CPAN não explica tudo hahahah. É um repositório de códigos, não um manual do Perl. No caso do 'has' e do binmode só se acha no perldoc:
    http://perldoc.perl.org/functions/binmode.html

    O 'has' cria um novo atributo na classe. Faz parte do melhor sistema de orientação a objeto do Perl, também conhecido como Moose. =P
    O código ali informa que eu criei um atributo chamado "filename" do tipo "rw" (read/write), que vai entrar apenas dados do tipo String e que ele deve ser informado ao instanciar a classe.
    A partir daí, eu acesso o atributo com um $self->filename nos outros métodos do código.

    O croak é parecido com o die. Porém, a mensagem de erro dele acessa algumas informações a mais do caller.

    Sobre como eu peguei parte do arquivo, isso faz parte do filespec do padrão flv. É um longo, realmente longo assunto. Recomendo que procure sobre "bitwise" e você vai conhecer a famosa escovação de bits! :-P

    []'s
    Acha que está caindo na insanidade? Mergulhe!

    Twitter | Blog | Facebook | Github

  5. #5
    Hacker Avatar de acpguedes
    Data de Ingresso
    Sep 2011
    Localização
    #!/usr/bin/env perl
    Posts
    955
    Como tu saca pra caramba assim????
    Cada dia que passa esse bot do fvox esta com o modilo AI mais desenvolvido!!!

    Enfim, que tipo de informações a mais esse croak acessa, como poderia esta usando de forma diferenciada, eu digo, usar para algo que o die não faria!
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!

  6. #6
    White Hat Administrador Avatar de fvox
    Data de Ingresso
    Sep 2005
    Localização
    São Paulo - SP
    Posts
    4.428
    Hahahh eu não saco pra caramba de nada.
    As árvores de decisão da minha rede neural da IA estão bem projetadas. =P

    O croak não acessa nada demais. Ele apenas pega algumas informações a mais do caller e vomita na tela para o usuário. Útil em módulos para que quem esteja usando o seu possa encontrar e corrigir bugs, já que a verbosidade dele é melhor.

    []'s
    Acha que está caindo na insanidade? Mergulhe!

    Twitter | Blog | Facebook | Github

  7. #7
    Hacker Avatar de acpguedes
    Data de Ingresso
    Sep 2011
    Localização
    #!/usr/bin/env perl
    Posts
    955
    saquei...

    quando você se encontrar com seu dono, diga a ele que te achei um bot bem projetado e que eu pedi a source... hahahaha!!!
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •