Converta Perl em Delphi usando IA

A tradução de código fonte para fonte de Perl 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

Problema de Tradução Exemplo de Sintaxe Perl Exemplo de Sintaxe Delphi Pontuação (1-10)
Expressões Regulares /padrão/ TRegEx.Create('padrão') 8
Variáveis Sensíveis ao Contexto my $var = "valor"; var varName: string; varName := 'valor'; 7
Sub-rotinas Anônimas my $code_ref = sub { return 42; }; var codeRef: TFunc<Integer>; codeRef := function: Integer begin Result := 42; end; 6
Inicialização de Array e Hash my @array = (1, 2, 3); my %hash = (chave => 'valor'); var array: array of Integer; array := [1, 2, 3]; var hash: TDictionary<string, string>; hash := TDictionary<string, string>.Create; hash.Add('chave', 'valor'); 7
Coerção de Tipo $var = 5; $var = "string"; var varName: Variant; varName := 5; varName := 'string'; 5
Funções Integradas print scalar @array; ShowMessage(IntToStr(Length(array))); 6
Sintaxe Orientada a Objetos package MyClass; sub new { ... } type TMyClass = class ... end; 7
Tratamento de Exceções eval { ... }; try ... except ... end; 6
Manipulação de Arquivos open my $fh, '<', 'file.txt'; var fileStream: TFileStream; fileStream := TFileStream.Create('file.txt', fmOpenRead); 8

Expressões Regulares

Perl fornece uma maneira poderosa e flexível de lidar com expressões regulares usando a sintaxe /padrão/. Em contraste, Delphi usa a classe TRegEx para expressões regulares, que requer uma abordagem mais verbosa.

Exemplo de Perl:

if ("Olá Mundo" =~ /Mundo/) {
    print "Correspondência encontrada!";
}

Exemplo de Delphi:

uses
  System.RegularExpressions;

var
  regex: TRegEx;
  match: Boolean;
begin
  regex := TRegEx.Create('Mundo');
  match := regex.IsMatch('Olá Mundo');
  if match then
    ShowMessage('Correspondência encontrada!');
end;

Documentação Perl sobre Expressões Regulares

Documentação Delphi sobre TRegEx

Variáveis Sensíveis ao Contexto

Perl permite variáveis sensíveis ao contexto, onde o contexto (escalar ou lista) determina como a variável se comporta. Delphi, por outro lado, possui um sistema de tipos mais estático.

Exemplo de Perl:

my @array = (1, 2, 3);
my $scalar = @array; # $scalar recebe a contagem de elementos

Exemplo de Delphi:

var
  array: array of Integer;
  scalar: Integer;
begin
  array := [1, 2, 3];
  scalar := Length(array); // Deve obter explicitamente o comprimento
end;

Documentação Perl sobre Variáveis

Documentação Delphi sobre Arrays

Sub-rotinas Anônimas

Perl suporta sub-rotinas anônimas, que podem ser atribuídas a variáveis. Delphi tem um conceito semelhante, mas requer uma abordagem mais estruturada.

Exemplo de Perl:

my $code_ref = sub { return 42; };
print $code_ref->();

Exemplo de Delphi:

var
  codeRef: TFunc<Integer>;
begin
  codeRef := function: Integer begin Result := 42; end;
  ShowMessage(IntToStr(codeRef()));
end;

Documentação Perl sobre Sub-rotinas

Documentação Delphi sobre Métodos Anônimos

Inicialização de Array e Hash

Perl permite a inicialização concisa de arrays e hashes, enquanto Delphi requer uma sintaxe mais explícita.

Exemplo de Perl:

my @array = (1, 2, 3);
my %hash = (chave => 'valor');

Exemplo de Delphi:

var
  array: array of Integer;
  hash: TDictionary<string, string>;
begin
  array := [1, 2, 3];
  hash := TDictionary<string, string>.Create;
  hash.Add('chave', 'valor');
end;

Documentação Perl sobre Arrays

Documentação Delphi sobre TDictionary

Coerção de Tipo

Perl permite a coerção dinâmica de tipos, enquanto Delphi possui um sistema de tipos mais estático que requer declarações de tipo explícitas.

Exemplo de Perl:

my $var = 5;
$var = "string"; # Sem erro de tipo

Exemplo de Delphi:

var
  varName: Variant;
begin
  varName := 5;
  varName := 'string'; // Funciona, mas requer Variant
end;

Documentação Perl sobre Escalares

Documentação Delphi sobre Variantes

Funções Integradas

Perl possui um rico conjunto de funções integradas que podem ser usadas diretamente, enquanto Delphi requer chamadas de métodos.

Exemplo de Perl:

print scalar @array; # Imprime o número de elementos

Exemplo de Delphi:

ShowMessage(IntToStr(Length(array))); // Deve usar a função Length

Documentação Perl sobre Funções Integradas

Documentação Delphi sobre Length

Sintaxe Orientada a Objetos

A sintaxe orientada a objetos de Perl é mais flexível, enquanto Delphi possui uma definição de classe mais estruturada.

Exemplo de Perl:

package MyClass;
sub new { ... }

Exemplo de Delphi:

type
  TMyClass = class
  end;

Documentação Perl sobre Programação Orientada a Objetos

Documentação Delphi sobre Classes

Tratamento de Exceções

Perl usa eval para tratamento de exceções, enquanto Delphi usa tratamento de exceções estruturado.

Exemplo de Perl:

eval { ... };

Exemplo de Delphi:

try
  ...
except
  ...
end;

Documentação Perl sobre Tratamento de Erros

Documentação Delphi sobre Tratamento de Exceções

Manipulação de Arquivos

Perl fornece uma interface simples para manipulação de arquivos, enquanto Delphi requer o uso de classes.

Exemplo de Perl:

open my $fh, '<', 'file.txt';

Exemplo de Delphi:

var
  fileStream: TFileStream;
begin
  fileStream := TFileStream.Create('file.txt', fmOpenRead);
end;

Documentação Perl sobre Manipulação de Arquivos

Documentação Delphi sobre TFileStream