use strict;
my $str = '<?php
namespace App\\Jobs\\Library\\Domain;
use Illuminate\\Bus\\Queueable;
use App\\Services\\YorLinkService;
use Illuminate\\Queue\\SerializesModels;
use Illuminate\\Queue\\InteractsWithQueue;
use Illuminate\\Contracts\\Queue\\ShouldQueue;
use Illuminate\\Foundation\\Bus\\Dispatchable;
class AddDomainLink implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected string $link_id;
protected string $domain_id;
protected string $path;
protected YorLinkService $yorLinkService;
/**
* Create a new job instance.
*
* @param $link_id
* @param $domain_id
* @param $path
*/
public function __construct(string $link_id, string $domain_id, string $path)
{
$this->yorLinkService = new YorLinkService;
$this->link_id = $link_id;
$this->domain_id = $domain_id;
$this->path = $path;
}
/**
* @param $yorLinkService
*/
public function setYorLinkServiceMock($yorLinkService)
{
$this->yorLinkService = $yorLinkService;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$this->yorLinkService->createLink([
\'link_id\' => $this->link_id,
\'domain_id\' => $this->domain_id,
\'path\' => $this->path
]);
}
}
';
my $regex = qr/^/p;
if ( $str =~ /$regex/ ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html