← Home

🐊

⌘K
ðŸĪ–
Claude Code AI Tools
ðŸĪ—
Hugging Face AI Tools
ðŸĶœ
LangChain AI Tools
🧠
Keras AI Tools
ðŸĶ™
Ollama AI Tools
🐍
Python Programming Languages
ðŸŸĻ
JavaScript Programming Languages
🔷
TypeScript Programming Languages
⚛ïļ
React Programming Languages
ðŸđ
Go Programming Languages
ðŸĶ€
Rust Programming Languages
📊
MATLAB Programming Languages
🗄ïļ
SQL Programming Languages
⚙ïļ
C/C++ Programming Languages
☕
Java Programming Languages
ðŸŸĢ
C# Programming Languages
🍎
Swift Programming Languages
🟠
Kotlin Programming Languages
â–ē
Next.js Programming Languages
💚
Vue.js Programming Languages
ðŸ”Ĩ
Svelte Programming Languages
ðŸŽĻ
Tailwind CSS Programming Languages
💚
Node.js Programming Languages
🌐
HTML Programming Languages
ðŸŽĻ
CSS/SCSS Programming Languages
🐘
PHP Programming Languages
💎
Ruby Programming Languages
ðŸ”ī
Scala Programming Languages
📊
R Programming Languages
ðŸŽŊ
Dart Programming Languages
💧
Elixir Programming Languages
🌙
Lua Programming Languages
🐊
Perl Programming Languages
🅰ïļ
Angular Programming Languages
🚂
Express.js Programming Languages
ðŸą
NestJS Programming Languages
ðŸ›Īïļ
Ruby on Rails Programming Languages
◾ïļ
GraphQL Programming Languages
🟊
Haskell Programming Languages
💚
Nuxt.js Programming Languages
🔷
SolidJS Programming Languages
⚡
htmx Programming Languages
ðŸ’ŧ
VS Code Development Tools
🧠
PyCharm Development Tools
📓
Jupyter Development Tools
🧠
IntelliJ IDEA Development Tools
💚
Neovim Development Tools
ðŸ”Ū
Emacs Development Tools
🔀
Git DevOps & CLI
ðŸģ
Docker DevOps & CLI
â˜ļïļ
Kubernetes DevOps & CLI
☁ïļ
AWS CLI DevOps & CLI
🔄
GitHub Actions DevOps & CLI
🐧
Linux Commands DevOps & CLI
ðŸ’ŧ
Bash Scripting DevOps & CLI
🌐
Nginx DevOps & CLI
📝
Vim DevOps & CLI
ðŸ”Ļ
Makefile DevOps & CLI
🧊
Pytest DevOps & CLI
🊟
Windows DevOps & CLI
ðŸ“Ķ
Package Managers DevOps & CLI
🍎
macOS DevOps & CLI
🏗ïļ
Terraform DevOps & CLI
🔧
Ansible DevOps & CLI
⎈
Helm DevOps & CLI
ðŸ”Ļ
Jenkins DevOps & CLI
ðŸ”Ĩ
Prometheus DevOps & CLI
📊
Grafana DevOps & CLI
ðŸ’ŧ
Zsh DevOps & CLI
🐟
Fish Shell DevOps & CLI
💙
PowerShell DevOps & CLI
🔄
Argo CD DevOps & CLI
🔀
Traefik DevOps & CLI
☁ïļ
Azure CLI DevOps & CLI
☁ïļ
Google Cloud CLI DevOps & CLI
📟
tmux DevOps & CLI
🔧
jq DevOps & CLI
✂ïļ
sed DevOps & CLI
📊
awk DevOps & CLI
🌊
Apache Airflow DevOps & CLI
ðŸ”Ē
NumPy Databases & Data
🐞
Pandas Databases & Data
ðŸ”Ĩ
PyTorch Databases & Data
🧠
TensorFlow Databases & Data
📈
Matplotlib Databases & Data
🐘
PostgreSQL Databases & Data
🐎
MySQL Databases & Data
🍃
MongoDB Databases & Data
ðŸ”ī
Redis Databases & Data
🔍
Elasticsearch Databases & Data
ðŸĪ–
Scikit-learn Databases & Data
👁ïļ
OpenCV Databases & Data
⚡
Apache Spark Databases & Data
ðŸŠķ
SQLite Databases & Data
⚡
Supabase Databases & Data
ðŸ”ĩ
Neo4j Databases & Data
ðŸ“Ļ
Apache Kafka Databases & Data
🐰
RabbitMQ Databases & Data
ðŸ”Ī
Regex Utilities
📝
Markdown Utilities
📄
LaTeX Utilities
🔐
SSH & GPG Utilities
🌐
curl & HTTP Utilities
📜
reStructuredText Utilities
🚀
Postman Utilities
🎎
FFmpeg Utilities
🖞ïļ
ImageMagick Utilities
🔍
ripgrep Utilities
🔍
fzf Utilities
📗
Microsoft Excel Office Applications
📘
Microsoft Word Office Applications
📙
Microsoft PowerPoint Office Applications
📝
Hancom Hangul Hancom Office
ðŸ“―ïļ
Hancom Hanshow Hancom Office
📊
Hancom Hancell Hancom Office
📄
Google Docs Google Workspace
📊
Google Sheets Google Workspace
ðŸ“―ïļ
Google Slides Google Workspace
🔌
Cadence Virtuoso EDA & Hardware
⚙ïļ
Synopsys EDA EDA & Hardware
💎
Verilog & VHDL EDA & Hardware
⚡
LTSpice EDA & Hardware
🔧
KiCad EDA & Hardware
📝
Notion Productivity
💎
Obsidian Productivity
💎
Slack Productivity
ðŸŽŪ
Discord Productivity
ðŸŽĻ
Figma Design Tools
📘
Confluence Atlassian
📋
Jira Atlassian
🃏
Jest Testing
⚡
Vitest Testing
🎭
Playwright Testing
ðŸŒē
Cypress Testing
🌐
Selenium Testing
💙
Flutter Mobile Development
ðŸ“ą
React Native Mobile Development
🍎
SwiftUI Mobile Development
ðŸ“ą
Expo Mobile Development
🐍
Django Web Frameworks
⚡
FastAPI Web Frameworks
ðŸŒķïļ
Flask Web Frameworks
🍃
Spring Boot Web Frameworks
ðŸļ
Gin Web Frameworks
⚡
Vite Build Tools
ðŸ“Ķ
Webpack Build Tools
⚡
esbuild Build Tools
🐘
Gradle Build Tools
ðŸŠķ
Maven Build Tools
🔧
CMake Build Tools
ðŸŽŪ
Unity Game Development
ðŸĪ–
Godot Game Development
🔌
Arduino Embedded & IoT
🔍
Nmap Security
🐕
Datadog Monitoring
📖
Swagger/OpenAPI Documentation
No results found
EN KO

Basics

Variables

Scalars
my $name = "John";
my $age = 25;
my $pi = 3.14;
my $undef;  # undefined
Arrays
my @nums = (1, 2, 3, 4, 5);
my @mixed = ("a", 1, 2.5);
my $first = $nums[0];
my $len = scalar @nums;  # or $#nums + 1
push @nums, 6;
pop @nums;
shift @nums;
unshift @nums, 0;
Hashes
my %person = (
  name => "John",
  age => 25,
);
my $name = $person{name};
$person{city} = "NYC";
delete $person{age};
my @keys = keys %person;
my @vals = values %person;
References
my $scalar_ref = \$name;
my $array_ref = \@nums;
my $hash_ref = \%person;

# Dereference
print $$scalar_ref;
print @$array_ref;
print %$hash_ref;

# Arrow notation
print $array_ref->[0];
print $hash_ref->{name};

Strings

String operations
my $str = "Hello";
my $len = length($str);
my $upper = uc($str);
my $lower = lc($str);
my $sub = substr($str, 0, 3);  # "Hel"
my $idx = index($str, "l");    # 2
my $concat = $str . " World";
Interpolation
my $name = "John";
print "Hello, $name!\n";       # Interpolates
print 'Hello, $name!\n';       # Literal
print "Array: @nums\n";        # Interpolates array
print "Hash key: $person{name}\n";
Here-doc
my $text = <<END;
This is a
multi-line
string.
END

Control Flow

Conditionals

if/elsif/else
if ($x > 10) {
  print "big";
} elsif ($x > 5) {
  print "medium";
} else {
  print "small";
}
unless
unless ($logged_in) {
  print "Please login";
}

# Same as: if (!$logged_in)
Ternary
my $status = $age >= 18 ? "adult" : "minor";
Statement modifiers
print "Hi" if $greet;
print "Error" unless $valid;
print $_ for @items;

Loops

for/foreach
for my $i (0..9) {
  print "$i\n";
}

foreach my $item (@items) {
  print "$item\n";
}

# C-style
for (my $i = 0; $i < 10; $i++) {
  print "$i\n";
}
while/until
while ($x < 10) {
  $x++;
}

until ($x >= 10) {
  $x++;
}

# do-while
do {
  $x++;
} while ($x < 10);
Loop control
for my $i (1..10) {
  next if $i % 2 == 0;  # skip even
  last if $i > 7;        # break
  redo if $retry;        # restart iteration
  print "$i\n";
}

Regular Expressions

Regex Operations

Matching
if ($str =~ /pattern/) {
  print "Match!";
}

if ($str !~ /pattern/) {
  print "No match";
}

# Case insensitive
if ($str =~ /pattern/i) { }
Capturing
if ($str =~ /(\w+)@(\w+)/) {
  my $user = $1;
  my $domain = $2;
}

# Named captures
if ($str =~ /(?<user>\w+)@(?<domain>\w+)/) {
  print $+{user};
}
Substitution
$str =~ s/old/new/;      # First occurrence
$str =~ s/old/new/g;     # Global
$str =~ s/old/new/gi;    # Global, case insensitive

# Transliteration
$str =~ tr/a-z/A-Z/;     # Uppercase
Split/Join
my @words = split /\s+/, $str;
my @parts = split /,/, $csv;
my $str = join ", ", @words;

Subroutines

Functions

Basic subroutine
sub greet {
  my ($name) = @_;
  return "Hello, $name!";
}

my $msg = greet("World");
Multiple arguments
sub add {
  my ($a, $b) = @_;
  return $a + $b;
}

# Default values
sub greet {
  my ($name, $greeting) = @_;
  $greeting //= "Hello";
  return "$greeting, $name!";
}
Return multiple values
sub min_max {
  my @nums = @_;
  my $min = (sort { $a <=> $b } @nums)[0];
  my $max = (sort { $b <=> $a } @nums)[0];
  return ($min, $max);
}

my ($min, $max) = min_max(3, 1, 4, 1, 5);
Anonymous subs
my $add = sub {
  my ($a, $b) = @_;
  return $a + $b;
};

print $add->(2, 3);

File I/O

File Operations

Reading files
open(my $fh, "<", "file.txt") or die "Cannot open: $!";
while (my $line = <$fh>) {
  chomp $line;
  print "$line\n";
}
close($fh);

# Read entire file
my @lines = <$fh>;
my $content = do { local $/; <$fh> };
Writing files
open(my $fh, ">", "file.txt") or die "Cannot open: $!";
print $fh "Hello, World!\n";
close($fh);

# Append
open(my $fh, ">>", "file.txt") or die $!;
File tests
-e $file  # exists
-f $file  # regular file
-d $file  # directory
-r $file  # readable
-w $file  # writable
-s $file  # size (bytes)
-z $file  # zero size

Modules

CPAN

cpan Module::Name Install module
cpanm Module::Name Install with cpanminus
perl -MCPAN -e shell CPAN shell

Using Modules

Import modules
use strict;
use warnings;
use Data::Dumper;
use File::Path qw(make_path remove_tree);
use JSON qw(encode_json decode_json);
Create module
# MyModule.pm
package MyModule;
use strict;
use warnings;
use Exporter qw(import);
our @EXPORT_OK = qw(hello);

sub hello {
  my ($name) = @_;
  return "Hello, $name!";
}

1;  # Module must return true