Learn in 10 minutes

Learn in 10 minutes

10 मिनट में Perl सीखें

Programming Language

Perl एक शक्तिशाली, उच्च-स्तरीय प्रोग्रामिंग भाषा है जो अपनी टेक्स्ट प्रोसेसिंग क्षमताओं और लचीलेपन के लिए जानी जाती है। मूल रूप से सिस्टम एडमिनिस्ट्रेशन कार्यों के लिए विकसित, Perl वेब डेवलपमेंट, नेटवर्क प्रोग्रामिंग और अन्य के लिए इस्तेमाल होने वाली बहुमुखी भाषा में विकसित हुई है। यह ट्यूटोरियल Perl की मुख्य अवधारणाओं को कवर करता है ताकि आप जल्दी से भाषा सीख सकें।

1. अपना पहला Perl प्रोग्राम लिखना

आइए एक सरल प्रोग्राम से शुरू करते हैं। hello.pl नाम की एक फाइल बनाएं और निम्नलिखित कोड दर्ज करें:

#!/usr/bin/perl
print "Hello, World!\n";

फाइल को सेव करें और टर्मिनल में निम्नलिखित कमांड चलाएं:

perl hello.pl

आउटपुट होगा:

Hello, World!

यह सरल प्रोग्राम Perl की बेसिक आउटपुट फंक्शनैलिटी दिखाता है। print फंक्शन का उपयोग कंसोल में टेक्स्ट जानकारी प्रदर्शित करने के लिए किया जाता है।

2. बेसिक सिंटैक्स

Perl का सिंटैक्स लचीला और अभिव्यंजक है, जिसमें कई विशिष्ट सुविधाएं हैं।

# यह एक कमेंट है
print "Hello, World!\n";

Perl में बेसिक सिंटैक्स नियम:

  • कमेंट्स: सिंगल-लाइन कमेंट्स # से शुरू होते हैं
  • स्टेटमेंट्स: सेमीकोलन ; के साथ समाप्त होते हैं
  • शेबैंग लाइन: स्क्रिप्ट फाइलों के शीर्ष पर #!/usr/bin/perl
  • वेरिएबल्स: वेरिएबल प्रकारों को दर्शाने के लिए विशेष वर्णों का उपयोग करें ($, @, %)
  • स्ट्रिंग कोट्स: सिंगल कोट्स ' या डबल कोट्स " का उपयोग कर सकते हैं

3. वेरिएबल्स और डेटा टाइप्स

Perl में, वेरिएबल्स डायनामिकली टाइप्ड होते हैं और अपने प्रकार को दर्शाने के लिए विशेष वर्णों का उपयोग करते हैं।

स्केलर वेरिएबल्स (सिंगल वैल्यू):

$name = "Alice";
$age = 25;
$temperature = 36.5;
$is_active = 1;  # सच के लिए 1, गलत के लिए खाली स्ट्रिंग

एरे वेरिएबल्स (ऑर्डर्ड लिस्ट):

@fruits = ("apple", "banana", "cherry");
@numbers = (1, 2, 3, 4, 5);

हैश वेरिएबल्स (की-वैल्यू पेयर्स):

%person = (
    "name" => "John",
    "age" => 30,
    "city" => "New York"
);

3.1 स्केलर वेरिएबल्स

स्केलर स्ट्रिंग्स, नंबर्स, या रेफरेंस जैसी सिंगल वैल्यू रखते हैं।

# स्ट्रिंग ऑपरेशन
$text = "Perl Programming";
print length($text);        # स्ट्रिंग लंबाई
print uc($text);            # अपरकेस में बदलें
print lc($text);            # लोअरकेस में बदलें
print substr($text, 0, 4);  # सबस्ट्रिंग निकालें

# न्यूमेरिक ऑपरेशन
$x = 10;
$y = 3;
print $x + $y;    # 13
print $x - $y;    # 7
print $x * $y;    # 30
print $x / $y;    # 3.333...
print $x % $y;    # 1 (मॉड्यूलो)

3.2 एरे वेरिएबल्स

एरे ऑर्डर्ड कलेक्शन होते हैं जो मल्टीपल वैल्यू रख सकते हैं।

@colors = ("red", "green", "blue");

# एरे एलिमेंट्स तक पहुंचना
print $colors[0];     # "red" (सिंगल एलिमेंट के लिए $ का उपयोग करें)
print $colors[1];     # "green"
print $colors[-1];    # "blue" (अंतिम एलिमेंट)

# एरे ऑपरेशन
push(@colors, "yellow");     # अंत में जोड़ें
pop(@colors);                # अंत से हटाएं
shift(@colors);              # शुरुआत से हटाएं
unshift(@colors, "purple");  # शुरुआत में जोड़ें

# एरे फंक्शन
print scalar(@colors);       # एलिमेंट्स की संख्या
print $#colors;              # अंतिम इंडेक्स

3.3 हैश वेरिएबल्स

हैश की-वैल्यू पेयर्स के कलेक्शन होते हैं।

%student = (
    name => "Alice",
    age => 20,
    major => "Computer Science"
);

# हैश एलिमेंट्स तक पहुंचना
print $student{"name"};     # "Alice"
print $student{age};        # 20

# हैश ऑपरेशन
$student{"gpa"} = 3.8;     # नया की-वैल्यू पेयर जोड़ें
delete $student{"age"};    # की-वैल्यू पेयर हटाएं

# हैश फंक्शन
@keys = keys %student;      # सभी की प्राप्त करें
@values = values %student;  # सभी वैल्यू प्राप्त करें

4. कंट्रोल फ्लो

Perl प्रोग्राम एक्जीक्यूशन को मैनेज करने के लिए कई कंट्रोल फ्लो स्टेटमेंट प्रदान करता है।

4.1 if स्टेटमेंट्स

if स्टेटमेंट एक कंडीशन का मूल्यांकन करता है और उसका ब्लॉक एक्जीक्यूट करता है यदि कंडीशन सच है।

$age = 20;
if ($age >= 18) {
    print "Adult\n";
} elsif ($age >= 13) {
    print "Teen\n";
} else {
    print "Child\n";
}

# वन-लाइन if
print "Adult\n" if $age >= 18;

4.2 unless स्टेटमेंट्स

unless if का विपरीत है - एक्जीक्यूट करता है जब कंडीशन गलत हो।

$age = 15;
unless ($age >= 18) {
    print "Not an adult\n";
}

# वन-लाइन unless
print "Not an adult\n" unless $age >= 18;

4.3 लूप्स

Perl विभिन्न लूप कंस्ट्रक्ट्स को सपोर्ट करता है।

while लूप:

$count = 0;
while ($count < 5) {
    print "Count: $count\n";
    $count++;
}

for लूप:

for ($i = 0; $i < 5; $i++) {
    print "i = $i\n";
}

foreach लूप:

@fruits = ("apple", "banana", "cherry");
foreach $fruit (@fruits) {
    print "Fruit: $fruit\n";
}

# डिफॉल्ट वेरिएबल $_ का उपयोग करना
foreach (@fruits) {
    print "Fruit: $_\n";
}

last और next:

foreach (1..10) {
    last if $_ == 5;     # लूप से बाहर निकलें
    next if $_ % 2 == 0; # सम संख्याओं को छोड़ें
    print "$_\n";        # आउटपुट: 1, 3
}

5. सबरूटीन्स

Perl में सबरूटीन्स को sub कीवर्ड का उपयोग करके परिभाषित किया जाता है।

बेसिक सबरूटीन डेफिनिशन:

sub greet {
    my $name = shift;
    return "Hello, $name!";
}

# सबरूटीन को कॉल करना
$message = greet("John");
print $message;

पैरामीटर्स का उपयोग:

sub add_numbers {
    my ($a, $b) = @_;
    return $a + $b;
}

$result = add_numbers(5, 3);
print "Sum: $result\n";

डिफॉल्ट पैरामीटर्स:

sub greet {
    my ($name, $greeting) = @_;
    $greeting = "Hello" unless defined $greeting;
    return "$greeting, $name!";
}

print greet("Alice");          # "Hello, Alice!"
print greet("Bob", "Hi");      # "Hi, Bob!"

6. रेगुलर एक्सप्रेशन्स

Perl अपनी शक्तिशाली रेगुलर एक्सप्रेशन क्षमताओं के लिए प्रसिद्ध है।

बेसिक पैटर्न मैचिंग:

$text = "Hello, World!";

if ($text =~ /Hello/) {
    print "Found 'Hello'\n";
}

# केस-इनसेंसिटिव मैचिंग
if ($text =~ /world/i) {
    print "Found 'world' (case-insensitive)\n";
}

सब्स्टीट्यूशन:

$text = "I like cats and cats are cute";
$text =~ s/cats/dogs/g;  # सभी घटनाओं को बदलें
print "$text\n";         # "I like dogs and dogs are cute"

मैचेस निकालना:

$email = "[email protected]";
if ($email =~ /(\w+)@(\w+\.\w+)/) {
    print "Username: $1\n";      # "user"
    print "Domain: $2\n";        # "example.com"
}

7. फाइल ऑपरेशन्स

Perl फाइलों को पढ़ने और लिखने के लिए सरल तरीके प्रदान करता है।

फाइलें पढ़ना:

# पूरी फाइल पढ़ें
open(my $fh, '<', 'example.txt') or die "Cannot open file: $!";
my $content = do { local $/; <$fh> };
close($fh);
print $content;

# लाइन बाय लाइन पढ़ें
open(my $fh, '<', 'example.txt') or die "Cannot open file: $!";
while (my $line = <$fh>) {
    print $line;
}
close($fh);

फाइलें लिखना:

# फाइल में लिखें
open(my $fh, '>', 'output.txt') or die "Cannot open file: $!";
print $fh "Hello, Perl!\n";
close($fh);

# फाइल में एपेंड करें
open(my $fh, '>>', 'output.txt') or die "Cannot open file: $!";
print $fh "Appending new content.\n";
close($fh);

8. बिल्ट-इन फंक्शन्स

Perl कई उपयोगी बिल्ट-इन फंक्शन्स के साथ आता है।

स्ट्रिंग फंक्शन्स:

$text = "  Perl Programming  ";
print length($text);        # स्ट्रिंग लंबाई
print uc($text);            # अपरकेस में बदलें
print lc($text);            # लोअरकेस में बदलें
print substr($text, 0, 4);  # सबस्ट्रिंग निकालें
print index($text, "Prog"); # सबस्ट्रिंग पोजिशन ढूंढें

एरे फंक्शन्स:

@numbers = (3, 1, 4, 1, 5, 9, 2);
print join(", ", sort @numbers);      # "1, 1, 2, 3, 4, 5, 9"
print join(", ", reverse @numbers);   # "2, 9, 5, 1, 4, 1, 3"

# एरे फिल्टर करें
@filtered = grep { $_ > 3 } @numbers;
print join(", ", @filtered);          # "4, 5, 9"

# एरे ट्रांसफॉर्म करें
@doubled = map { $_ * 2 } @numbers;
print join(", ", @doubled);           # "6, 2, 8, 2, 10, 18, 4"

हैश फंक्शन्स:

%person = (name => "Alice", age => 25, city => "New York");
@keys = keys %person;      # सभी की प्राप्त करें
@values = values %person;  # सभी वैल्यू प्राप्त करें

# चेक करें कि की मौजूद है
if (exists $person{age}) {
    print "Age exists\n";
}

9. Perl मॉड्यूल्स

Perl के पास CPAN के माध्यम से उपलब्ध मॉड्यूल्स का एक समृद्ध इकोसिस्टम है।

कोर मॉड्यूल्स का उपयोग:

use strict;
use warnings;
use Data::Dumper;

%data = (name => "Bob", age => 30);
print Dumper(\%data);  # डेटा स्ट्रक्चर को प्रीटी प्रिंट करें

CPAN मॉड्यूल्स इंस्टॉल करना और उपयोग करना:

# CPAN से मॉड्यूल इंस्टॉल करें
cpan install JSON
use JSON;

# JSON पार्स करें
$json_string = '{"name": "Alice", "age": 25}';
$person = decode_json($json_string);
print $person->{name};  # "Alice"

# JSON जनरेट करें
$person_hash = { name => "Bob", age => 30 };
$json_output = encode_json($person_hash);
print $json_output;  # {"name":"Bob","age":30}

10. Perl स्टाइल गाइड

Perl के पास कम्युनिटी कन्वेंशन हैं जो साफ, पठनीय कोड को बढ़ावा देते हैं।

इंडेंटेशन: इंडेंटेशन के लिए 4 स्पेस का उपयोग करें।

वेरिएबल नेमिंग:

  • वर्णनात्मक नामों का उपयोग करें
  • snake_case कन्वेंशन का पालन करें
  • सार्थक वेरिएबल नामों का उपयोग करें

कोड ऑर्गनाइजेशन:

  • स्क्रिप्ट्स के शीर्ष पर use strict; और use warnings; का उपयोग करें
  • स्कोप को सीमित करने के लिए my के साथ वेरिएबल्स डिक्लेयर करें
  • सार्थक सबरूटीन नामों का उपयोग करें

डॉक्यूमेंटेशन:

  • कोड डॉक्यूमेंट करने के लिए POD (Plain Old Documentation) का उपयोग करें
  • कॉम्प्लेक्स लॉजिक के लिए कमेंट्स शामिल करें

Perl का लचीलापन और शक्तिशाली टेक्स्ट प्रोसेसिंग क्षमताएं इसे सिस्टम एडमिनिस्ट्रेशन, वेब डेवलपमेंट और डेटा प्रोसेसिंग कार्यों के लिए एक उत्कृष्ट विकल्प बनाती हैं। इसके मॉड्यूल्स के समृद्ध इकोसिस्टम और मजबूत कम्युनिटी सपोर्ट इसे आधुनिक प्रोग्रामिंग वातावरण में प्रासंगिक बनाए रखते हैं।