mirror of
https://github.com/FULU-Foundation/OrcaSlicer-bambulab.git
synced 2026-05-14 13:02:39 -07:00
29 lines
739 B
Perl
29 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;
|