--- /dev/null
+ace.define("ace/snippets/perl",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# #!/usr/bin/perl\n\
+snippet #!\n\
+ #!/usr/bin/env perl\n\
+\n\
+# Hash Pointer\n\
+snippet .\n\
+ =>\n\
+# Function\n\
+snippet sub\n\
+ sub ${1:function_name} {\n\
+ ${2:#body ...}\n\
+ }\n\
+# Conditional\n\
+snippet if\n\
+ if (${1}) {\n\
+ ${2:# body...}\n\
+ }\n\
+# Conditional if..else\n\
+snippet ife\n\
+ if (${1}) {\n\
+ ${2:# body...}\n\
+ }\n\
+ else {\n\
+ ${3:# else...}\n\
+ }\n\
+# Conditional if..elsif..else\n\
+snippet ifee\n\
+ if (${1}) {\n\
+ ${2:# body...}\n\
+ }\n\
+ elsif (${3}) {\n\
+ ${4:# elsif...}\n\
+ }\n\
+ else {\n\
+ ${5:# else...}\n\
+ }\n\
+# Conditional One-line\n\
+snippet xif\n\
+ ${1:expression} if ${2:condition};${3}\n\
+# Unless conditional\n\
+snippet unless\n\
+ unless (${1}) {\n\
+ ${2:# body...}\n\
+ }\n\
+# Unless conditional One-line\n\
+snippet xunless\n\
+ ${1:expression} unless ${2:condition};${3}\n\
+# Try/Except\n\
+snippet eval\n\
+ local $@;\n\
+ eval {\n\
+ ${1:# do something risky...}\n\
+ };\n\
+ if (my $e = $@) {\n\
+ ${2:# handle failure...}\n\
+ }\n\
+# While Loop\n\
+snippet wh\n\
+ while (${1}) {\n\
+ ${2:# body...}\n\
+ }\n\
+# While Loop One-line\n\
+snippet xwh\n\
+ ${1:expression} while ${2:condition};${3}\n\
+# C-style For Loop\n\
+snippet cfor\n\
+ for (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {\n\
+ ${4:# body...}\n\
+ }\n\
+# For loop one-line\n\
+snippet xfor\n\
+ ${1:expression} for @${2:array};${3}\n\
+# Foreach Loop\n\
+snippet for\n\
+ foreach my $${1:x} (@${2:array}) {\n\
+ ${3:# body...}\n\
+ }\n\
+# Foreach Loop One-line\n\
+snippet fore\n\
+ ${1:expression} foreach @${2:array};${3}\n\
+# Package\n\
+snippet package\n\
+ package ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`};\n\
+\n\
+ ${2}\n\
+\n\
+ 1;\n\
+\n\
+ __END__\n\
+# Package syntax perl >= 5.14\n\
+snippet packagev514\n\
+ package ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`} ${2:0.99};\n\
+\n\
+ ${3}\n\
+\n\
+ 1;\n\
+\n\
+ __END__\n\
+#moose\n\
+snippet moose\n\
+ use Moose;\n\
+ use namespace::autoclean;\n\
+ ${1:#}BEGIN {extends '${2:ParentClass}'};\n\
+\n\
+ ${3}\n\
+# parent\n\
+snippet parent\n\
+ use parent qw(${1:Parent Class});\n\
+# Read File\n\
+snippet slurp\n\
+ my $${1:var} = do { local $/; open my $file, '<', \"${2:file}\"; <$file> };\n\
+ ${3}\n\
+# strict warnings\n\
+snippet strwar\n\
+ use strict;\n\
+ use warnings;\n\
+# older versioning with perlcritic bypass\n\
+snippet vers\n\
+ ## no critic\n\
+ our $VERSION = '${1:version}';\n\
+ eval $VERSION;\n\
+ ## use critic\n\
+# new 'switch' like feature\n\
+snippet switch\n\
+ use feature 'switch';\n\
+\n\
+# Anonymous subroutine\n\
+snippet asub\n\
+ sub {\n\
+ ${1:# body }\n\
+ }\n\
+\n\
+\n\
+\n\
+# Begin block\n\
+snippet begin\n\
+ BEGIN {\n\
+ ${1:# begin body}\n\
+ }\n\
+\n\
+# call package function with some parameter\n\
+snippet pkgmv\n\
+ __PACKAGE__->${1:package_method}(${2:var})\n\
+\n\
+# call package function without a parameter\n\
+snippet pkgm\n\
+ __PACKAGE__->${1:package_method}()\n\
+\n\
+# call package \"get_\" function without a parameter\n\
+snippet pkget\n\
+ __PACKAGE__->get_${1:package_method}()\n\
+\n\
+# call package function with a parameter\n\
+snippet pkgetv\n\
+ __PACKAGE__->get_${1:package_method}(${2:var})\n\
+\n\
+# complex regex\n\
+snippet qrx\n\
+ qr/\n\
+ ${1:regex}\n\
+ /xms\n\
+\n\
+#simpler regex\n\
+snippet qr/\n\
+ qr/${1:regex}/x\n\
+\n\
+#given\n\
+snippet given\n\
+ given ($${1:var}) {\n\
+ ${2:# cases}\n\
+ ${3:# default}\n\
+ }\n\
+\n\
+# switch-like case\n\
+snippet when\n\
+ when (${1:case}) {\n\
+ ${2:# body}\n\
+ }\n\
+\n\
+# hash slice\n\
+snippet hslice\n\
+ @{ ${1:hash} }{ ${2:array} }\n\
+\n\
+\n\
+# map\n\
+snippet map\n\
+ map { ${2: body } } ${1: @array } ;\n\
+\n\
+\n\
+\n\
+# Pod stub\n\
+snippet ppod\n\
+ =head1 NAME\n\
+\n\
+ ${1:ClassName} - ${2:ShortDesc}\n\
+\n\
+ =head1 SYNOPSIS\n\
+\n\
+ use $1;\n\
+\n\
+ ${3:# synopsis...}\n\
+\n\
+ =head1 DESCRIPTION\n\
+\n\
+ ${4:# longer description...}\n\
+\n\
+\n\
+ =head1 INTERFACE\n\
+\n\
+\n\
+ =head1 DEPENDENCIES\n\
+\n\
+\n\
+ =head1 SEE ALSO\n\
+\n\
+\n\
+# Heading for a subroutine stub\n\
+snippet psub\n\
+ =head2 ${1:MethodName}\n\
+\n\
+ ${2:Summary....}\n\
+\n\
+# Heading for inline subroutine pod\n\
+snippet psubi\n\
+ =head2 ${1:MethodName}\n\
+\n\
+ ${2:Summary...}\n\
+\n\
+\n\
+ =cut\n\
+# inline documented subroutine\n\
+snippet subpod\n\
+ =head2 $1\n\
+\n\
+ Summary of $1\n\
+\n\
+ =cut\n\
+\n\
+ sub ${1:subroutine_name} {\n\
+ ${2:# body...}\n\
+ }\n\
+# Subroutine signature\n\
+snippet parg\n\
+ =over 2\n\
+\n\
+ =item\n\
+ Arguments\n\
+\n\
+\n\
+ =over 3\n\
+\n\
+ =item\n\
+ C<${1:DataStructure}>\n\
+\n\
+ ${2:Sample}\n\
+\n\
+\n\
+ =back\n\
+\n\
+\n\
+ =item\n\
+ Return\n\
+\n\
+ =over 3\n\
+\n\
+\n\
+ =item\n\
+ C<${3:...return data}>\n\
+\n\
+\n\
+ =back\n\
+\n\
+\n\
+ =back\n\
+\n\
+\n\
+\n\
+# Moose has\n\
+snippet has\n\
+ has ${1:attribute} => (\n\
+ is => '${2:ro|rw}',\n\
+ isa => '${3:Str|Int|HashRef|ArrayRef|etc}',\n\
+ default => sub {\n\
+ ${4:defaultvalue}\n\
+ },\n\
+ ${5:# other attributes}\n\
+ );\n\
+\n\
+\n\
+# override\n\
+snippet override\n\
+ override ${1:attribute} => sub {\n\
+ ${2:# my $self = shift;};\n\
+ ${3:# my ($self, $args) = @_;};\n\
+ };\n\
+\n\
+\n\
+# use test classes\n\
+snippet tuse\n\
+ use Test::More;\n\
+ use Test::Deep; # (); # uncomment to stop prototype errors\n\
+ use Test::Exception;\n\
+\n\
+# local test lib\n\
+snippet tlib\n\
+ use lib qw{ ./t/lib };\n\
+\n\
+#test methods\n\
+snippet tmeths\n\
+ $ENV{TEST_METHOD} = '${1:regex}';\n\
+\n\
+# runtestclass\n\
+snippet trunner\n\
+ use ${1:test_class};\n\
+ $1->runtests();\n\
+\n\
+# Test::Class-style test\n\
+snippet tsub\n\
+ sub t${1:number}_${2:test_case} :Test(${3:num_of_tests}) {\n\
+ my $self = shift;\n\
+ ${4:# body}\n\
+\n\
+ }\n\
+\n\
+# Test::Routine-style test\n\
+snippet trsub\n\
+ test ${1:test_name} => { description => '${2:Description of test.}'} => sub {\n\
+ my ($self) = @_;\n\
+ ${3:# test code}\n\
+ };\n\
+\n\
+#prep test method\n\
+snippet tprep\n\
+ sub prep${1:number}_${2:test_case} :Test(startup) {\n\
+ my $self = shift;\n\
+ ${4:# body}\n\
+ }\n\
+\n\
+# cause failures to print stack trace\n\
+snippet debug_trace\n\
+ use Carp; # 'verbose';\n\
+ # cloak \"die\"\n\
+ # warn \"warning\"\n\
+ $SIG{'__DIE__'} = sub {\n\
+ require Carp; Carp::confess\n\
+ };\n\
+\n\
+";
+exports.scope = "perl";
+
+});