mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-12 17:27:52 -06:00
28 lines
739 B
Perl
28 lines
739 B
Perl
package Slic3r::GCode::PlaceholderParser;
|
|
use strict;
|
|
use warnings;
|
|
|
|
sub process {
|
|
my ($self, $string, $extra) = @_;
|
|
|
|
# extra variables have priority over the stored ones
|
|
if ($extra) {
|
|
my $regex = join '|', keys %$extra;
|
|
$string =~ s/\[($regex)\]/$extra->{$1}/eg;
|
|
}
|
|
{
|
|
my $regex = join '|', @{$self->_single_keys};
|
|
$string =~ s/\[($regex)\]/$self->_single_get("$1")/eg;
|
|
}
|
|
{
|
|
my $regex = join '|', @{$self->_multiple_keys};
|
|
$string =~ s/\[($regex)\]/$self->_multiple_get("$1")/egx;
|
|
|
|
# unhandled indices are populated using the first value
|
|
$string =~ s/\[($regex)_\d+\]/$self->_multiple_get("$1")/egx;
|
|
}
|
|
|
|
return $string;
|
|
}
|
|
|
|
1;
|