Konversikan Perl ke JavaScript menggunakan AI

Terjemahan kode sumber-ke-sumber dari Perl menggunakan AI melibatkan penggunaan teknik pemrosesan bahasa alami (NLP) dan algoritme pembelajaran mesin untuk menganalisis dan memahami kode sumber

Fitur

Hotkeys Konverter Potongan Kode

Kombinasi Aksi
Ctrl+c Menyalin konten editor kode sumber ke clipboard
Ctrl+v Menyisipkan kode sumber ke editor dari clipboard dengan menimpa konten yang ada
Ctrl+ Shift+c Menyalin output AI ke clipboard
Ctrl+r atau Ctrl+enter Menjalankan konversi kode sumber
Ctrl+Shift+1 Mengalihkan visibilitas editor instruksi AI

Tantangan Terjemahan

Masalah Terjemahan Contoh Sintaks Perl Contoh Sintaks JavaScript Skor (1-10)
Variabel sensitif konteks my $var = "Hello"; let var = "Hello"; 3
Ekspresi reguler $string =~ s/foo/bar/g; string.replace(/foo/g, "bar"); 4
Struktur data (hash vs objek) %hash = (key => "value"); let obj = { key: "value" }; 5
Autovivifikasi $hash{$key} = "value"; obj[key] = "value"; 6
Referensi kode my $code_ref = sub { return 42; }; const codeRef = () => 42; 7
Perilaku kontekstual dari $_ print $_; console.log(variable); 8
Penanganan pengecualian eval { ... }; try { ... } catch (e) { ... } 5
Variabel terikat tie my $var, 'Some::Class'; N/A 9
Sintaks berorientasi objek package MyClass; class MyClass {} 4
Fungsi bawaan my @array = sort { $a <=> $b } @list; let array = list.sort((a, b) => a - b); 3

Variabel sensitif konteks

Dalam Perl, variabel sensitif konteks dapat berperilaku berbeda berdasarkan konteks penggunaannya (skalar vs daftar). Sebagai contoh:

my $scalar = 42;
my @array = ($scalar);  # Konteks skalar

Dalam JavaScript, variabel tidak sensitif konteks dengan cara yang sama, karena selalu diperlakukan sebagai tipe yang dideklarasikan:

let scalar = 42;
let array = [scalar];  // Selalu diperlakukan sebagai nilai

Dokumentasi Perl tentang Konteks

Ekspresi reguler

Perl memiliki kemampuan regex yang kuat yang terintegrasi dalam bahasa, memungkinkan penggantian di tempat:

$string =~ s/foo/bar/g;  # Ganti 'foo' dengan 'bar'

Dalam JavaScript, regex juga didukung, tetapi sintaks untuk penggantian berbeda:

string = string.replace(/foo/g, "bar");  // Ganti 'foo' dengan 'bar'

Dokumentasi Perl tentang Ekspresi Reguler

Struktur data (hash vs objek)

Perl menggunakan hash untuk pasangan kunci-nilai, sementara JavaScript menggunakan objek:

my %hash = (key => "value");

Dalam JavaScript, ini akan direpresentasikan sebagai:

let obj = { key: "value" };

Dokumentasi Perl tentang Hash

Autovivifikasi

Perl memungkinkan autovivifikasi, di mana variabel secara otomatis dibuat jika tidak ada:

$hash{$key} = "value";  # Secara otomatis membuat $hash{$key}

Dalam JavaScript, Anda harus secara eksplisit mendefinisikan propertinya:

obj[key] = "value";  // Harus memastikan obj ada

Dokumentasi Perl tentang Autovivifikasi

Referensi kode

Perl memungkinkan referensi kode, yang memungkinkan pembuatan subrutin anonim:

my $code_ref = sub { return 42; };

Dalam JavaScript, ini dilakukan menggunakan fungsi panah:

const codeRef = () => 42;

Dokumentasi Perl tentang Referensi Kode

Perilaku kontekstual dari $_

Perl memiliki variabel default khusus $_ yang digunakan dalam banyak fungsi:

print $_;  # Mencetak variabel default

Dalam JavaScript, tidak ada yang setara; Anda harus secara eksplisit merujuk ke variabel:

console.log(variable);  // Harus menentukan variabel

Dokumentasi Perl tentang Variabel Default

Penanganan pengecualian

Perl menggunakan eval untuk penanganan pengecualian, yang bisa kurang terstruktur:

eval { ... };  # Kode yang mungkin melempar kesalahan

JavaScript menggunakan try...catch untuk penanganan pengecualian yang terstruktur:

try { ... } catch (e) { ... }

Dokumentasi Perl tentang eval

Variabel terikat

Perl memungkinkan variabel terikat, yang dapat menghubungkan variabel ke kelas:

tie my $var, 'Some::Class';

JavaScript tidak memiliki padanan langsung untuk fitur ini.

Dokumentasi Perl tentang Variabel Terikat

Sintaks berorientasi objek

Sintaks berorientasi objek Perl berbeda dari pendekatan berbasis kelas JavaScript:

package MyClass;

Dalam JavaScript, Anda akan mendefinisikan kelas seperti ini:

class MyClass {}

Dokumentasi Perl tentang Pemrograman Berorientasi Objek

Fungsi bawaan

Perl memiliki fungsi bawaan yang dapat berperilaku berbeda dari metode JavaScript:

my @array = sort { $a <=> $b } @list;

Dalam JavaScript, pengurutan dilakukan dengan fungsi callback:

let array = list.sort((a, b) => a - b);

Dokumentasi Perl tentang Pengurutan

FAQ