লোড হচ্ছে…

অনলাইন Perl কম্পাইলার ও প্লেগ্রাউন্ড

ব্রাউজার-ভিত্তিক কম্পাইলার ও প্লেগ্রাউন্ড, Perl, Progsity IDE।

Perl সম্পর্কে

Perl বানানো হয়েছিল text নিয়ে কাজের জন্য: log পড়া, line থেকে দরকারি অংশ বের করা, কয়েকটা statement এ পুরো file নতুন করে লেখা। Regular expression এখানে আলাদা library নয়, syntax এরই অংশ। Hash আর list ও language এর ভেতরেই আছে। সে কারণেই অনেক system script আর bioinformatics এর কাজ এখনও Perl এ লেখা হয়।

এই playground এ sandbox এর ভেতরে Perl 5 চলে, core module গুলো সহ। মানে List::Util, POSIX, Data::Dumper আর bigint ব্যবহার করতে পারবেন। Script এর শুরুতে use strict আর use warnings লিখে নিন। Perl অনেক ভুল চুপচাপ মেনে নেয়, এই দুটো লাইন থাকলে সেগুলো message হয়ে সামনে আসে।

চালানোর আগে script টা perl -c দিয়ে check করা হয়, তাই syntax error থাকলে line সহ একবারেই জানা যায়।

কীভাবে ব্যবহার করবেন

  1. শুরুতে use strict; আর use warnings; লিখুন, তারপর সরাসরি script।
  2. stdin panel এর input পড়ুন <STDIN> দিয়ে, এক line করে, অথবা while loop এ সবগুলো।
  3. Run চাপুন। Warning গুলো error panel এ আসে, কোন line থেকে এসেছে সেটা সহ।

প্রশ্নোত্তর

এখানে কোন Perl চলে?›

Perl 5.36। এটা Perl 5। Raku (আগে যার নাম ছিল Perl 6) আলাদা একটা language, সেটা নয়।

CPAN এর module ব্যবহার করা যাবে?›

শুধু Perl এর সাথে যেগুলো আসে সেগুলো। Sandbox এ network নেই, তাই CPAN থেকে কিছু install করা যায় না।

অনেক বড় সংখ্যা নিয়ে কাজ করব কীভাবে?›

use bigint; লিখে দিন, integer আর overflow করবে না। আরও নিয়ন্ত্রণ চাইলে Math::BigInt আর Math::BigFloat আছে।

Compile output এ "syntax OK" দেখায় কেন?›

ওটা perl -c এর কথা, মানে check এ কোনো সমস্যা পাওয়া যায়নি। আপনার program এর নিজের output থাকে output panel এ।

Script গুলো রেখে দেওয়া যায়?›

যায়। Sign in করে snippet save করুন। একটা link পাবেন, পরে সেটা খুলতে বা share করতে পারবেন।

কোড উদাহরণ

উপরের এডিটরে উদাহরণ লোড করতে “এটি চেষ্টা করুন” ট্যাপ করুন।

  • Hash দিয়ে শব্দ গোনা

    use strict;
    use warnings;
    
    my %count;
    $count{$_}++ for split ' ', "to be or not to be";
    print "$_: $count{$_}\n" for sort keys %count;
  • দুটো সংখ্যা পড়া

    use strict;
    use warnings;
    
    my ($x, $y) = split ' ', <STDIN>;
    print $x + $y, "\n";
  • Text থেকে সংখ্যা বের করা

    use strict;
    use warnings;
    
    my $text = "Order 66 shipped on day 12";
    my @numbers = $text =~ /(\d+)/g;
    print "@numbers\n";
  • সংখ্যা sort

    use strict;
    use warnings;
    
    my @nums = (3, 1, 4, 1, 5, 9);
    print join(" ", sort { $a <=> $b } @nums), "\n";