{"id":324,"date":"2026-10-13T14:12:17","date_gmt":"2026-10-13T14:12:17","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2012\/05\/22\/perl-interview-questions-and-answers\/"},"modified":"2026-10-13T14:12:17","modified_gmt":"2026-10-13T14:12:17","slug":"perl-interview-questions-and-answers","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/perl-interview-questions-and-answers\/","title":{"rendered":"Perl Interview Questions for DevOps Engineers: Practical Concepts, Commands, and Clear Answers"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Perl still appears in automation glue code, legacy operational tooling, text-processing pipelines, and CI helper scripts. This guide organizes common Perl interview topics into practical, technically accurate answers so you can explain not just <strong>what<\/strong> a feature does, but <strong>when<\/strong> to use it in real DevOps work.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Originally published on 2012-05-22; fully revised and updated.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3817 aligncenter\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2012\/05\/perl-interview-questions-an.png\" alt=\"perl interview questions answers\" width=\"600\" height=\"400\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2012\/05\/perl-interview-questions-an.png 600w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2012\/05\/perl-interview-questions-an-300x200.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What interviewers are usually testing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Most Perl interview rounds test your ability to safely handle text, files, process execution, and core language semantics (scope, references, context). If you can answer these cleanly, you can usually handle both scripting and production troubleshooting questions.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>One-liners vs full scripts<\/li><li>Variable scope: <code>my<\/code>, <code>our<\/code>, <code>local<\/code><\/li><li>Arrays, hashes, slices, and <code>splice<\/code><\/li><li>Regex, <code>grep<\/code>, and substitution<\/li><li><code>use<\/code> vs <code>require<\/code>, strictness, warnings<\/li><li>File IO, pipelines, and process exit codes<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Perl one-liners vs script files<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A Perl one-liner is command-line execution using <code>-e<\/code>. It is great for quick transforms and ad-hoc operations. A script file is better for maintainability, testing, and reuse.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Mode<\/th><th>Best for<\/th><th>Typical command<\/th><th>Trade-off<\/th><\/tr><\/thead><tbody><tr><td>One-liner<\/td><td>Fast edits, filtering logs, quick checks<\/td><td><code>perl -e '...'<\/code><\/td><td>Harder to read when logic grows<\/td><\/tr><tr><td>Script file<\/td><td>Team code, version control, testing<\/td><td><code>perl script.pl<\/code><\/td><td>Slightly slower to bootstrap<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript language-bash\">perl -e <span class=\"hljs-string\">'print qq(Hello)'<\/span>\nperl -ne <span class=\"hljs-string\">'print if \/ERROR\/'<\/span> app.log\nperl -pi.bak -e <span class=\"hljs-string\">'s\/search_str\/replace_str\/g'<\/span> large_file.txt<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-perl\"><span class=\"hljs-comment\">#!\/usr\/bin\/env perl<\/span>\n<span class=\"hljs-keyword\">use<\/span> <span class=\"hljs-title\">strict<\/span>;\n<span class=\"hljs-keyword\">use<\/span> <span class=\"hljs-title\">warnings<\/span>;\n\n<span class=\"hljs-keyword\">while<\/span> (my $line = &lt;STDIN&gt;) {\n    <span class=\"hljs-keyword\">print<\/span> $line <span class=\"hljs-keyword\">if<\/span> $line =~ \/ERROR\/;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<pre class=\"mermaid\">\nflowchart LR\n    A[Question or task appears] --> B{Small one step text task}\n    B -- yes --> C[Use perl one liner]\n    B -- no --> D[Write script file]\n    C --> E[Test with sample data]\n    D --> E\n    E --> F{Needs external module}\n    F -- yes --> G[Install from CPAN]\n    F -- no --> H[Run in pipeline]\n    G --> H\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Scope, symbol table behavior, and references<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Interviewers often ask about <code>my<\/code> vs <code>local<\/code>, symbolic references, and expressions like <code>${var}<\/code> and <code>${'var'}<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Keyword<\/th><th>What it does<\/th><th>Common interview point<\/th><\/tr><\/thead><tbody><tr><td><code>my<\/code><\/td><td>Declares a lexical variable<\/td><td>Scope is the current block\/file<\/td><\/tr><tr><td><code>our<\/code><\/td><td>Declares a package variable visible lexically<\/td><td>Useful with strict vars<\/td><\/tr><tr><td><code>local<\/code><\/td><td>Temporarily changes value of a package variable<\/td><td>Dynamic scoping behavior, not lexical declaration<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-perl\"><span class=\"hljs-keyword\">use<\/span> <span class=\"hljs-title\">strict<\/span>;\n<span class=\"hljs-keyword\">use<\/span> <span class=\"hljs-title\">warnings<\/span>;\n\nour $var = <span class=\"hljs-string\">'package'<\/span>;\n\n{\n    my $var = <span class=\"hljs-string\">'lexical'<\/span>;\n    <span class=\"hljs-keyword\">print<\/span> $var;\n    <span class=\"hljs-keyword\">print<\/span> chr(<span class=\"hljs-number\">10<\/span>);\n\n    no strict <span class=\"hljs-string\">'refs'<\/span>;\n    <span class=\"hljs-keyword\">print<\/span> ${<span class=\"hljs-string\">'var'<\/span>};\n    <span class=\"hljs-keyword\">print<\/span> chr(<span class=\"hljs-number\">10<\/span>);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">In short: <code>$var<\/code> resolves lexical variables first when declared with <code>my<\/code>, while <code>${'var'}<\/code> is a symbol-table lookup (symbolic reference), which is blocked under <code>use strict 'refs'<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Arrays, hashes, and list operations interviewers expect<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Know how to grow\/shrink arrays, use slices, and explain <code>splice<\/code> in list vs scalar context.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-perl\">my @arr = (<span class=\"hljs-number\">10<\/span>, <span class=\"hljs-number\">20<\/span>, <span class=\"hljs-number\">30<\/span>, <span class=\"hljs-number\">40<\/span>, <span class=\"hljs-number\">50<\/span>);\n\nmy @slice = @arr&#91;<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">3<\/span>];\nsplice(@arr, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">99<\/span>, <span class=\"hljs-number\">100<\/span>);\npush @arr, <span class=\"hljs-number\">60<\/span>;\nmy $first = shift @arr;\nmy $last = pop @arr;\n\n@arr = ();\n$<span class=\"hljs-comment\">#arr = -1;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><code>splice<\/code> returns removed elements in list context, and the last removed element in scalar context. Also note: stacks are usually <code>push<\/code>\/<code>pop<\/code>; queues are commonly <code>push<\/code>\/<code>shift<\/code>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-perl\">my %grades = (\n    kim    =&gt; <span class=\"hljs-number\">96<\/span>,\n    al     =&gt; <span class=\"hljs-number\">63<\/span>,\n    rocky  =&gt; <span class=\"hljs-number\">87<\/span>,\n    chrisy =&gt; <span class=\"hljs-number\">96<\/span>,\n    jane   =&gt; <span class=\"hljs-number\">79<\/span>,\n);\n\n<span class=\"hljs-keyword\">for<\/span> my $name (sort keys %grades) {\n    <span class=\"hljs-keyword\">print<\/span> $name . q( ) . $grades{$name} . chr(<span class=\"hljs-number\">10<\/span>);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Regex, grep, map, and sed-style substitutions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Perl interviews frequently include regex filtering and replacement tasks. Be ready to explain context and intent clearly.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Function or tool<\/th><th>Primary use<\/th><th>Return behavior<\/th><\/tr><\/thead><tbody><tr><td><code>grep<\/code><\/td><td>Filter list elements by condition<\/td><td>List context: matching elements; scalar context: count<\/td><\/tr><tr><td><code>map<\/code><\/td><td>Transform list elements<\/td><td>Returns transformed list<\/td><\/tr><tr><td><code>sed s\/old\/new\/g<\/code><\/td><td>Stream substitution in shell pipelines<\/td><td>Text output after substitution<\/td><\/tr><tr><td><code>perl -pi -e 's\/old\/new\/g'<\/code><\/td><td>In-place file substitution with backup option<\/td><td>Updates files directly<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-perl\">my @<span class=\"hljs-keyword\">list<\/span> = (<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">'Test'<\/span>, <span class=\"hljs-number\">0<\/span>, <span class=\"hljs-string\">'foo'<\/span>, <span class=\"hljs-number\">20<\/span>);\nmy @has_digit = grep { \/&#91;<span class=\"hljs-number\">0<\/span><span class=\"hljs-number\">-9<\/span>]\/ } @<span class=\"hljs-keyword\">list<\/span>;\nmy $count = grep { \/&#91;<span class=\"hljs-number\">0<\/span><span class=\"hljs-number\">-9<\/span>]\/ } @<span class=\"hljs-keyword\">list<\/span>;\nmy @upper = map { uc($_) } @<span class=\"hljs-keyword\">list<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript language-bash\">sed <span class=\"hljs-string\">'s\/old\/new\/g'<\/span> file.txt\nperl -pi.bak -e <span class=\"hljs-string\">'s\/old\/new\/g'<\/span> file.txt<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Reference link preserved from the original post: <a href=\"http:\/\/www.tutorialspoint.com\/perl\/perl_operators.htm\" target=\"_blank\" rel=\"noopener noreferrer\">Perl Operators<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">use vs require, strictness, and interpreter switches<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Construct<\/th><th>When it runs<\/th><th>Notes<\/th><\/tr><\/thead><tbody><tr><td><code>use Module;<\/code><\/td><td>Compile time<\/td><td>Loads module and calls import by default<\/td><\/tr><tr><td><code>require Module;<\/code><\/td><td>Runtime<\/td><td>Loads when reached; import is manual<\/td><\/tr><tr><td><code>require 'file.pl';<\/code><\/td><td>Runtime<\/td><td>File-style include pattern<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-perl\"><span class=\"hljs-keyword\">use<\/span> <span class=\"hljs-title\">strict<\/span>;\n<span class=\"hljs-keyword\">use<\/span> <span class=\"hljs-title\">warnings<\/span>;\n<span class=\"hljs-keyword\">use<\/span> <span class=\"hljs-title\">JSON<\/span> <span class=\"hljs-title\">qw<\/span>(<span class=\"hljs-title\">encode_json<\/span>);\n\n<span class=\"hljs-keyword\">require<\/span> POSIX;\nPOSIX-&gt;import(qw(strftime));\n\n<span class=\"hljs-keyword\">require<\/span> <span class=\"hljs-string\">'legacy_helpers.pl'<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Common switches worth mentioning in interviews: <code>-e<\/code> (execute expression), <code>-c<\/code> (syntax check), <code>-d<\/code> (debugger), and warning modes (<code>-w<\/code> or <code>use warnings;<\/code>). Official strict documentation: <a href=\"https:\/\/perldoc.perl.org\/strict\" target=\"_blank\" rel=\"noopener noreferrer\">perldoc strict<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">File handling, process execution, and environment variables<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-perl\"><span class=\"hljs-keyword\">use<\/span> <span class=\"hljs-title\">strict<\/span>;\n<span class=\"hljs-keyword\">use<\/span> <span class=\"hljs-title\">warnings<\/span>;\n\nopen(my $fh, <span class=\"hljs-string\">'&lt;'<\/span>, <span class=\"hljs-string\">'checkbook.txt'<\/span>) <span class=\"hljs-keyword\">or<\/span> <span class=\"hljs-keyword\">die<\/span> $!;\n<span class=\"hljs-keyword\">while<\/span> (my $record = &lt;$fh&gt;) {\n    <span class=\"hljs-keyword\">print<\/span> $record;\n}\nclose($fh);\n\n$ENV{<span class=\"hljs-string\">'PATH'<\/span>} = <span class=\"hljs-string\">'\/bin:\/usr\/bin:\/usr\/local\/bin'<\/span>;\n<span class=\"hljs-keyword\">print<\/span> $^O;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-perl\">my $rc = system(<span class=\"hljs-string\">'ls'<\/span>, <span class=\"hljs-string\">'-l'<\/span>);\n<span class=\"hljs-keyword\">if<\/span> ($rc == <span class=\"hljs-number\">-1<\/span>) {\n    <span class=\"hljs-keyword\">die<\/span> <span class=\"hljs-string\">'failed to execute command'<\/span>;\n}\nmy $exit_code = $rc &gt;&gt; <span class=\"hljs-number\">8<\/span>;\n<span class=\"hljs-keyword\">print<\/span> $exit_code;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Interview shorthand: <code>system<\/code> runs a command and returns status information; <code>exec<\/code> replaces the current process and only returns on failure. <code>die<\/code> raises an exception and prints a message; <code>exit<\/code> terminates with a status code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">CPAN and module installation basics<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">CPAN is the central Perl ecosystem for modules and documentation. Useful links preserved from the original article: <a href=\"http:\/\/www.cpan.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">CPAN home<\/a>, <a href=\"http:\/\/www.cpan.org\/SITES.html\" target=\"_blank\" rel=\"noopener noreferrer\">CPAN mirrors<\/a>, and <a href=\"http:\/\/www.cpan.org\/misc\/cpan-faq.html#What_is_CPAN\" target=\"_blank\" rel=\"noopener noreferrer\">CPAN FAQ<\/a>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css language-bash\"><span class=\"hljs-selector-tag\">cpan<\/span> <span class=\"hljs-selector-tag\">App<\/span><span class=\"hljs-selector-pseudo\">::cpanminus<\/span>\n<span class=\"hljs-selector-tag\">cpanm<\/span> <span class=\"hljs-selector-tag\">local<\/span><span class=\"hljs-selector-pseudo\">::lib<\/span>\n<span class=\"hljs-selector-tag\">cpanm<\/span> <span class=\"hljs-selector-tag\">Module<\/span><span class=\"hljs-selector-pseudo\">::Name<\/span>\n<span class=\"hljs-selector-tag\">ppm<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">DBD-mysql<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><code>ppm<\/code> appears in many older interview banks because it was common in ActivePerl workflows.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Best practices for Perl interview prep<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Prefer clear, modern examples using <code>use strict;<\/code> and <code>use warnings;<\/code>.<\/li><li>Explain context behavior (scalar vs list) whenever discussing <code>grep<\/code>, <code>splice<\/code>, or return values.<\/li><li>Avoid symbolic references unless there is a strong reason.<\/li><li>Use three-argument <code>open<\/code> and check errors consistently.<\/li><li>When discussing command execution, mention exit-code handling rather than only success\/fail assumptions.<\/li><li>If a question is old or ambiguous, state the modern recommended approach explicitly.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A cleaned-up, interview-focused Perl guide for DevOps and SRE roles. It covers one-liners, scope rules, references, regex, module loading, and command execution with practical examples.<\/p>\n","protected":false},"author":1,"featured_media":3817,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[52],"tags":[767,2511,766,2497,2504,507,1553,175,2507,2509,2508,2510,2506,482,1830,637],"class_list":["post-324","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-interview-questions-answers","tag-answer","tag-frequently-asked","tag-interview","tag-interview-questions","tag-interview-questions-answer","tag-list","tag-most-asked","tag-perl","tag-perl-interview","tag-perl-interview-qa","tag-perl-interview-questions-answer","tag-perl-job-interview","tag-perl-professional-interview","tag-questions","tag-selected","tag-top"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/324","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=324"}],"version-history":[{"count":4,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/324\/revisions"}],"predecessor-version":[{"id":79189,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/324\/revisions\/79189"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/3817"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=324"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=324"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}