Converta Python em Perl usando IA

A tradução de código fonte para fonte de Python usando IA envolve a utilização de técnicas de processamento de linguagem natural (PNL) e algoritmos de aprendizado de máquina para analisar e compreender o código-fonte

CoffeeScript

FAQ

Desafios de Tradução

Descrição do Problema Exemplo de Sintaxe Python Exemplo de Sintaxe Perl Pontuação (1-10)
Compreensões de Lista [x**2 for x in range(10)] map { $_**2 } (0..9) 6
Compreensões de Dicionário {x: x**2 for x in range(5)} map { $_ => $_**2 } (0..4) 7
Funções de Primeira Classe def add(x, y): return x + y sub add { return $_[0] + $_[1]; } 5
Tratamento de Exceções try: ... except Exception as e: ... eval { ... }; if ($@) { ... } 8
Fatiamento e Indexação my_list[1:3] @my_list[1..2] 4
Geradores e Iteradores def gen(): yield x for x in range(5) sub gen { foreach (0..4) { yield $_; }} 9
Dicas de Tipo def func(x: int) -> str: sub func ($x) { ... } (sem dica de tipo) 8
Declarações Multilinha if (x > 0):\n print(x) print($x) if $x > 0; 3
Gerenciadores de Contexto with open('file.txt') as f: open(my $fh, '<', 'file.txt') or die; 7
Métodos de Lista e Dicionário my_list.append(5) push @my_list, 5; 5

Compreensões de Lista

Exemplo Python

squares = [x**2 for x in range(10)]

Exemplo Perl

my @squares = map { $_**2 } (0..9);

Compreensões de Dicionário

Exemplo Python

squares_dict = {x: x**2 for x in range(5)}

Exemplo Perl

my %squares_dict = map { $_ => $_**2 } (0..4);

Funções de Primeira Classe

Exemplo Python

def add(x, y):
    return x + y

Exemplo Perl

sub add {
    return $_[0] + $_[1];
}

Tratamento de Exceções

Exemplo Python

try:
    # código que pode gerar uma exceção
except Exception as e:
    # tratar exceção

Exemplo Perl

eval {
    # código que pode gerar uma exceção
};
if ($@) {
    # tratar exceção
}

Fatiamento e Indexação

Exemplo Python

my_list = [0, 1, 2, 3, 4]
sliced_list = my_list[1:3]

Exemplo Perl

my @my_list = (0, 1, 2, 3, 4);
my @sliced_list = @my_list[1..2];

Geradores e Iteradores

Exemplo Python

def gen():
    for x in range(5):
        yield x

Exemplo Perl

sub gen {
    foreach (0..4) {
        yield $_;
    }
}

Dicas de Tipo

Exemplo Python

def func(x: int) -> str:
    return str(x)

Exemplo Perl

sub func {
    my ($x) = @_;
    return "$x";
}

Declarações Multilinha

Exemplo Python

if x > 0:
    print(x)

Exemplo Perl

print($x) if $x > 0;

Gerenciadores de Contexto

Exemplo Python

with open('file.txt') as f:
    content = f.read()

Exemplo Perl

open(my $fh, '<', 'file.txt') or die;
my $content = do { local $/; <$fh> };
close($fh);

Métodos de Lista e Dicionário

Exemplo Python

my_list.append(5)

Exemplo Perl

push @my_list, 5;