Perl podusage는 추가 제어-O를 사용하여 매뉴얼 페이지를 생성합니다.

Perl podusage는 추가 제어-O를 사용하여 매뉴얼 페이지를 생성합니다.

나는 pod2usage매뉴얼 페이지를 생성하기 위해 Perl 스크립트를 사용하고 있습니다. 코드는 다음과 같습니다.

use Pod::Usage;
pod2usage(-verbose => 2) ;
exit 0 ;
... some code ...
__END__                                                                                                                             

=head1 NAME                                                                                                                         

my-program - program to do things                                                                   

=head1 SYNOPSIS                                                                                                                     

B<my-program> ( help | status | version )                                                                              

B<my-program> ( lock I<reason> )                                                                                                

B<my-program> ( unlock [I<username | ALL>] ) 

프로그램을 실행하면 매뉴얼 페이지가 표시되지만 다음과 같습니다.

NAME^O
    my-program - program to do things

SYNOPSIS^O
    my-program^O ( facter | help | status | version )

    my-program^O ( lock reason^O )

    my-program^O ( unlock [username | ALL^O] )

위의 단어는 굵게 표시되고 밑줄이 그어져 있지만 ^O다음과 같습니다. 왜 거기에 있습니까?

간단한 매뉴얼 페이지(예: )를 만드는 경우 man man굵은 글씨나 밑줄 친 단어에는 접미사가 없습니다 ^O.

term이는 변수가 로 설정된 bash 쉘의 데비안 들것에서 발생합니다 linux.

답변1

(놀랍게도) OpenBSD에서 문제를 재현하고 (또는 ) TERM로 설정할 수 있습니다 . , , 또는 기타 일반 터미널 로 설정해 도 문제가 없으며 문자가 표시되지 않습니다.linuxrxvtTERMvt100screentmuxxterm^O

터미널 기능과 관련하여 내가 찾을 수 있었던 유일한 관련 정보는 Pod::Text다음과 같습니다 Pod::Usage.사용된termcap다시 작성된 이전 시퀀스를 사용합니다 . 기본 형식을 사용하여 포맷하거나 설명서에 명시된 대로 사용하면 TERM=linux아무런 차이가 없는 것 같습니다 .Pod::UsagePod::TextPod::Text::TermcapPod::Usage

기본 텍스트 포맷터는 입니다 Pod::Text. Pod::Usage기본 클래스는 사전 설정을 통해 정의할 수 있습니다.$Pod::Usage::Formatter 앞으로예를 들면 다음 과 같습니다 Pod::Usage.

BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Termcap'; }
use Pod::Usage qw(pod2usage);

TERM사용 중인 터미널에 대해 변수가 올바르게 설정되었는지 확인하십시오 . 대부분의 터미널은 xtermor와 함께 작동하지만, xterm-coloror에서 실행되는 세션에서는 작동해야 합니다(두 프로그램 모두 기본적으로 이를 적용합니다).screentmuxTERM=screen

관련 정보