Как установить режим taint в perl-скрипте с помощью '#! / Usr / bin / env perl'- shebang?

Почему бы вам просто не создать настраиваемое событие вроде, скажем, deselect, и разрешить его запуск для всех членов группы, на которую была сделана клика, кроме самого элемента, который был нажат? Его способ проще использовать API обработки событий, который предоставляет jQuery таким образом.

HTML







jQuery

// Attaching click event handlers to all radio buttons...
$('input[type="radio"]').bind('click', function(){
    // Processing only those that match the name attribute of the currently clicked button...
    $('input[name="' + $(this).attr('name') + '"]').not($(this)).trigger('deselect'); // Every member of the current radio group except the clicked one...
});

$('input[type="radio"]').bind('deselect', function(){
    console.log($(this));
})

События выбора триггер только среди членов одной и той же радиогруппы (элементы, которые имеют одинаковый атрибут name).

jsFiddle solution

EDIT: для всех возможных мест размещения прикрепленного ярлыка метки (обертывания радиоэлемента или присоединения через селектор id), возможно, лучше использовать событие onchange для запуска обработчиков. Благодаря Faust для указания этого.

$('input[type="radio"]').on('change', function(){
    // ...
}

11
задан sid_com 27 March 2010 в 10:48
поделиться

2 ответа

Вы можете передать переменную окружения PERL5OPT в строке shebang:

#!/usr/bin/env PERL5OPT=-T perl

Мне это кажется довольно обратным.

Другой вариант - повторно выполнить сценарий в режиме заражения, если вы обнаружите, что он не включен:

#!/usr/bin/env perl

warn 'Taint mode is '.(${^TAINT} ? 'on' : 'off'); # For debugging

exec($^X,'-T',$0,@ARGV) unless ${^TAINT};

# do stuff under taint mode here

Очевидно, это серьезное снижение производительности при запуске.

12
ответ дан 3 December 2019 в 08:03
поделиться

Поскольку режим taint может быть включен только с помощью флага -T, а env не принимает никаких флагов в строке shebang, лучшим вариантом будет запуск программы через perl -T script.pl, а не выполнение скрипта напрямую.

Если вам абсолютно необходимо обеспечить режим taint в shebang, вы можете создать taintperl скрипт где-нибудь в вашем PATH (например, /usr/local/bin) со следующим содержимым:

#!/bin/sh
/usr/bin/env perl -T

Затем в вашем Perl скрипте, пусть

#!/usr/bin/env taintperl
3
ответ дан 3 December 2019 в 08:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: