این دستور perlcriticp است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
"perlcritic" - رابط خط فرمان برای نقد منبع Perl.
خلاصه
perlcritic [-12345 | --بی رحمانه | --بی رحمانه | --خشن | --استرن | -- ملایم]
[--شماره شدت | نام] [{-p | --profile} فایل | --noprofile]
[--بالا [شماره]] [-- بیان تم] [--شامل الگو]
[--الگوی حذف] [{-s | -الگوی تک سیاستی]
[--فقط | -- ظهر] [--پروفایل-سختی {هشدار|کشنده|آرام}]
[--نیروی | --noforce] [--statistics] [--statistics-only]
[--شمارش | -C] [--مختلف {شماره | قالب}] [--allow-unsafe]
[--رنگ | --nocolor] [--پیجر پیجر] [--آرام]
[--color-severity-highest color_specification]
[--color-severity-high color_specification]
[--رنگ-شدت-مشخصات_رنگ متوسط]
[--color-severity-low color_specification]
[--color-severity-lowest color_specification]
[--فایل-با-نقض | -l]
[--فایلها-بدون-نقض | -L]
[--program-extensions file_name_extension]
{FILE | دایرکتوری | STDIN}
perlcritic --profile-proto
perlcritic { --list | --list-enabled | --list-themes | --الگوی doc [...] }
perlcritic { --help | --گزینه ها | --مرد | --نسخه}
شرح
"perlcritic" یک تحلیلگر کد منبع Perl است. این جلویی قابل اجرایی است
Perl::موتور انتقادی، که تلاش می کند ناجور، خواندن سخت، مستعد خطا، یا
ساختارهای غیر متعارف در کد شما بسیاری از قوانین بر اساس دامیان کانوی است
کتاب پرل بهترین تمرین. با این حال، "perlcritic" است نه محدود به اجرای PBP و آن است
حتی از قوانینی که با کانوی در تضاد هستند پشتیبانی خواهد کرد. همه قوانین را می توان به راحتی پیکربندی کرد یا
به دلخواه شما غیرفعال شد
این مستندات فقط نحوه اجرای این دستور را پوشش می دهد. برای تمام اطلاعات دیگر، مانند
به عنوان مرجع API و رابط های جایگزین، لطفاً به مستندات Perl::Critic مراجعه کنید
خود.
طریقه استفاده مثال ها
قبل از پرداختن به تمام جزئیات بد، در اینجا چند مثال استفاده اساسی برای کمک به این کار آورده شده است
تو شروع کردی.
# فقط شدیدترین تخلفات را گزارش کنید (شدت = 5)
perlcritic YourModule.pm
# مانند بالا، اما ورودی STDIN را بخوانید
perlcritic
# به صورت بازگشتی همه فایل های پرل را در زیر دایرکتوری پردازش کنید
perlcritic /some/directory
# تخلفات با شدت کمتر را نیز گزارش دهید (شدت >= 4)
perlcritic -4 YourModule.pm
# مانند بالا، اما با استفاده از سطح شدت نامگذاری شده
perlcritic --stern YourModule.pm
# گزارش همه تخلفات، صرف نظر از شدت (شدت >= 1)
perlcritic -1 YourModule.pm
# مانند بالا، اما با استفاده از سطح شدت نامگذاری شده
perlcritic --Brutal YourModule.pm
# فقط موارد نقض موارد را از "Perl Best Practices" گزارش کنید
perlcritic --theme pbp YourModule.pm
# گزارش 20 تخلف شدید (شدت>= 1)
perlcritic -- top YourModule.pm
# تخلفات اضافی از خطمشیهایی را گزارش کنید که با m/variables/xms مطابقت دارند
perlcritic --شامل متغیرهای YourModule.pm
# استفاده از پیش فرض ها از جایی غیر از ~/.perlcriticrc
perlcriticrc --profile project/specific/perlcriticrc YourModule.pm
ادله
آرگومان ها مسیرهایی به سمت فایل هایی هستند که می خواهید تجزیه و تحلیل کنید. می توانید چندین فایل را مشخص کنید.
اگر آرگومان یک دایرکتوری باشد، "perlcritic" تمام فایل های Perl را در زیر آن تجزیه و تحلیل می کند
فهرست راهنما. اگر هیچ آرگومان مشخص نشده باشد، ورودی از STDIN خوانده می شود.
OPTIONS
نام گزینهها را میتوان به اختصار منحصربهفرد کرد و میتوان آن را با singe یا double بیان کرد
خط تیره ها و مقادیر گزینه را می توان با فاصله یا '=' از نام گزینه جدا کرد (مانند
Getopt::Long). نام گزینه ها نیز به حروف کوچک و بزرگ حساس هستند.
"--profile FILE" یا "-p FILE"
"perlcritic" را به استفاده از نمایه ای با نام FILE هدایت می کند تا اینکه به دنبال آن باشد
به طور پیش فرض .perlcriticrc فایل در دایرکتوری فعلی یا دایرکتوری خانگی شما. دیدن
"CONFIGURATION" در Perl::Critic برای اطلاعات بیشتر.
"--noprofile"
به "perlcritic" دستور می دهد تا هیچ فایل پیکربندی را بارگذاری نکند، بنابراین به حالت پیش فرض برمی گردد
پیکربندی برای همه سیاست ها
"--شدت N"
"perlcritic" را هدایت می کند تا فقط خط مشی هایی با شدت بیشتر از "N" اعمال کند.
مقادیر شدت اعداد صحیحی هستند که از 1 (کمترین شدت) تا 5 (شدیدترین) متغیر است. در
پیش فرض 5 است. برای یک "--profile" معین، کاهش "--severity" معمولا
تخلفات بیشتری ایجاد کند. شما می توانید مقدار پیش فرض را برای این گزینه در خود تنظیم کنید
.perlcriticrc فایل. همچنین میتوانید «شدت» را برای هر خطمشی در خود دوباره تعریف کنید
.perlcriticrc فایل. برای اطلاعات بیشتر به "پیکربندی" مراجعه کنید.
"-5 | -4 | -3 | -2 | -1"
اینها میانبرهای عددی برای تنظیم گزینه "--severity" هستند. به عنوان مثال، "-4" است
معادل "--شدت 4". اگر چند میانبر مشخص شده باشد، بیشترین
محدود کننده برنده می شود اگر یک گزینه صریح "--severity" نیز داده شود، همه
گزینه های میانبر بی سر و صدا نادیده گرفته می شوند. توجه: مراقب باشید یکی از شماره ها را قرار ندهید
گزینه های میانبر شدت بلافاصله پس از پرچم "--top" یا "perlcritic" خواهد بود
آن را به عنوان تعداد تخلف برای گزارش تفسیر کنید.
"--شدت NAME"
اگر برای شما دشوار است که به یاد بیاورید که آیا شدت "5" بیشترین یا کمترین است
سطح محدود کننده، سپس می توانید از یکی از این مقادیر نامگذاری شده استفاده کنید:
SEVERITY NAME ... معادل ... SEVERITY NUMBER است
-------------------------------------------------- ------
--شدت ملایم --شدت 5
--شدت stern --شدت 4
--شدت خشن --شدت 3
--شدت بی رحمانه --شدت ۲
--شدت بی رحمانه --شدت 1
"--لطیف | --خشن | --خشن | --بی رحمانه | --بی رحمانه"
اینها میانبرهایی برای تنظیم گزینه "--severity" نامگذاری شده اند. به عنوان مثال، "--بی رحمانه"
معادل "--شدت 2" است. اگر چند میانبر مشخص شده باشد، بیشترین
محدود کننده برنده می شود اگر یک گزینه صریح "--severity" نیز داده شود، همه
گزینه های میانبر بی سر و صدا نادیده گرفته می شوند.
"--قاعده موضوع"
"perlcritic" را هدایت می کند تا فقط خط مشی هایی را با مضامینی که "قانون" را برآورده می کنند اعمال کند.
تم ها نام های دلخواه گروه هایی از خط مشی های مرتبط هستند. می توانید تم را ترکیب کنید
نام هایی با عملگرهای بولی برای ایجاد یک "RULE" پیچیده دلخواه. مثلا،
موارد زیر فقط خطمشیهایی را اعمال میکنند که دارای موضوع «اشکالات» و «pbp» هستند:
$> perlcritic --theme='bugs && pbp' MyModule.pm
تا زمانی که گزینه "--severity" به صراحت داده شده باشد، تنظیم "--theme" بیصدا باعث میشود
"--severity" باید روی 1 تنظیم شود. می توانید مقدار پیش فرض این گزینه را در آن تنظیم کنید
خود را .perlcriticrc فایل. برای اطلاعات بیشتر به "موضوعات سیاست" در Perl::Critic مراجعه کنید
در مورد موضوعات
"--شامل PATTERN"
"perlcritic" را برای اعمال سیاست های اضافی که با regex "/PATTERN/imx" مطابقت دارند، هدایت می کند.
از این گزینه برای لغو موقت نمایه و/یا تنظیمات شدت در آن استفاده کنید
خط فرمان مثلا:
perlcritic --include=طرح بندی my_file.pl
این باعث می شود که "perlcritic" تمام خط مشی های "CodeLayout::*" را اعمال کند حتی اگر آنها
سطح شدت کمتر از سطح پیشفرض 5 است یا غیرفعال شده است
در خود .perlcriticrc فایل. شما می توانید چندین گزینه "--include" را مشخص کنید و می توانید
از آن در ارتباط با گزینه "--exclude" استفاده کنید. توجه داشته باشید که "--exclude" می گیرد
زمانی که یک خط مشی با هر دو الگو مطابقت دارد، بر «--شامل» تقدم دارد. می توانید تنظیم کنید
مقدار پیش فرض برای این گزینه در شما .perlcriticrc فایل.
"--exclude PATTERN"
به "perlcritic" دستور می دهد تا هیچ خط مشی مطابق با regex "/PATTERN/imx" را اعمال نکند.
از این گزینه برای لغو موقت نمایه و/یا تنظیمات شدت در آن استفاده کنید
خط فرمان مثلا:
perlcritic --exclude= دقیق my_file.pl
این باعث می شود که "perlcritic" "RequireUseStrict" را اعمال نکند و
خطمشیهای "ممنوعیت بدون محدودیت" حتی اگر بالاترین سطح شدت را دارند. تو می توانی
چندین گزینه "--exclude" را مشخص کنید و می توانید از آن در ارتباط با
گزینه "--include". توجه داشته باشید که "--exclude" بر "--include" اولویت دارد زمانی که a
خط مشی با هر دو الگو مطابقت دارد. شما می توانید مقدار پیش فرض را برای این گزینه در خود تنظیم کنید
.perlcriticrc فایل.
"--Single-policy PATTERN" یا "-s PATTERN"
"perlcritic" را هدایت می کند تا فقط یک ماژول Policy مطابق با regex را اعمال کند
"/PATTERN/ixms"، و تمام سیاست های دیگر را مستثنی می کند. این گزینه بر
گزینه های "--severity"، "--theme"، "--include"، "--exclude" و "--only". مثلا:
perlcritic --single-policy=nowarnings my_file.pl
این باعث می شود که "perlcritic" فقط خط مشی "ProhibitNoWarnings" را اعمال کند،
صرف نظر از تنظیم سطح شدت هیچ سیاست دیگری اعمال نخواهد شد.
این معادل همان چیزی است که می توان از آن قصد داشت...
perlcritic --exclude=. --include=nowarnings my_file.pl
... اما این کار نمی کند زیرا گزینه "--exclude" بر روی "--include" لغو می شود.
گزینه.
معادل این گزینه را می توان با ایجاد یک پروفایل سفارشی انجام داد
فقط شامل خط مشی مورد نظر و سپس اجرا...
perlcritic --profile=پروفایل سفارشی --only my_file.pl
"--بالا [ N ]"
به "perlcritic" دستور می دهد تا فقط موارد نقض خط مشی "N" برتر را در هر فایل رتبه بندی شده گزارش کند
با شدت آنها اگر "N" مشخص نشده باشد، به طور پیش فرض روی 20 قرار می گیرد. اگر "--severity"
گزینه (یا یکی از میانبرها) به صراحت داده نشده است، گزینه "--top" دلالت دارد
که حداقل سطح شدت "1" است (یعنی "بی رحمانه"). کاربران می توانند دوباره تعریف کنند
شدت هر خط مشی در آنها .perlcriticrc فایل. برای اطلاعات بیشتر به "پیکربندی" مراجعه کنید
اطلاعات شما می توانید مقدار پیش فرض را برای این گزینه در خود تنظیم کنید .perlcriticrc
فایل. توجه: مراقب باشید که بلافاصله یکی از گزینه های میانبر شدت را قرار ندهید
پس از پرچم "--top" یا "perlcritic" آن را به عنوان تعداد تخلف تفسیر می کند
گزارش کردن
"--زور"
به "perlcritic" دستور می دهد تا حاشیه نویسی جادویی "## بدون منتقد" در منبع را نادیده بگیرد.
کد برای اطلاعات بیشتر به "خم کردن قوانین" مراجعه کنید. می توانید مقدار پیش فرض را برای
این گزینه در شما .perlcriticrc فایل.
"--آمار"
باعث چندین آمار در مورد کد اسکن شده و موارد نقض شده است
پس از هر خروجی دیگری گزارش می شود.
"--فقط آمار"
مانند گزینه "--statistics"، اما خروجی عادی را سرکوب می کند و فقط آن را نشان می دهد
آمار.
"--کلمه N | FORMAT"
سطح یا قالب پرحرفی را برای گزارش تخلف تنظیم می کند. اگر یک عدد ("N") داده شود،
"perlcritic" با استفاده از یکی از قالبهای از پیش تعریفشده شرح داده شده در زیر، تخلفات را گزارش میکند.
اگر یک رشته ("FORMAT") داده شود، به عنوان یک مشخصات قالب واقعی تفسیر می شود.
اگر گزینه "--verbose" مشخص نشده باشد، بسته به
آیا چندین فایل به عنوان آرگومان به "perlcritic" داده شده است یا خیر. می توانید تنظیم کنید
مقدار پیش فرض برای این گزینه در شما .perlcriticrc فایل.
مشخصات فرمت پرحرفی
------------------------------------------------ ----------------
1 "%f:%l:%c:%m\n"،
2 "%f: (%l:%c) %m\n"،
3 "%m در %f خط %l\n"،
4 "%m در خط %l، ستون %c. %e. (شدت: %s)\n",
5 "%f: %m در خط %l، ستون %c. %e. (شدت: %s)\n",
6 "%m در خط %l، نزدیک به "%r". (شدت: %s)\n",
7 "%f: %m در خط %l نزدیک "%r". (شدت: %s)\n",
8 "[%p] %m در خط %l، ستون %c. (شدت: %s)\n"،
9 "[%p] %m در خط %l، نزدیک به "%r". (شدت: %s)\n",
10 "%m در خط %l، ستون %c.\n %p (شدت: %s)\n%d\n،
11 "%m در خط %l، نزدیک به "%r".\n %p (شدت: %s)\n%d\n"
قالب ها ترکیبی از کاراکترهای تحت اللفظی و گریز مشابه راه هستند
"sprintf" کار می کند. برای توضیح کامل قالب بندی به رشته::Format مراجعه کنید
توانایی ها. شخصیت های فرار معتبر عبارتند از:
معنی فرار
------------------------------------------------ -----------------
%c شماره ستونی که در آن تخلف رخ داده است
%d بحث تشخیصی کامل نقض
%e توضیح نقض یا شماره صفحه در PBP
%F فقط نام فایلی که در آن تخلف رخ داده است.
%f مسیر فایلی که در آن تخلف رخ داده است.
%l شماره خطی که در آن تخلف رخ داده است
%m شرح مختصری از نقض
%P نام کامل ماژول Policy که نقض را ایجاد کرده است
%p نام خط مشی بدون پیشوند Perl::Critic::Policy::
%r رشته کد منبعی که باعث نقض شده است
%C کلاس PPI:: عنصری که باعث نقض شده است
%s سطح شدت نقض
هدف از این فرمت ها فراهم کردن سازگاری با ویرایشگرهای متنی است که
دارای یک رابط برای تجزیه انواع خاصی از ورودی. "ادغام ویرایشگر" را ببینید
اطلاعات بیشتر در مورد آن
"--list"
فهرست فشرده ای از همه ماژول های Perl::Critic::Policy را که در یافت می شوند نمایش می دهد.
این ماشین. این گزینه لیست می کند تمام سیاست ها، صرف نظر از شما .perlcriticrc or
گزینه های خط فرمان برای هر خط مشی، نام، شدت پیشفرض و مضامین پیشفرض
نشان داده شده.
"--list-enabled"
فهرستی فشرده از همه ماژول های Perl::Critic::Policy را نمایش می دهد خواهد بود be
اگر واقعاً قصد داشتید فایلی را با این دستور نقد کنید. این هست
زمانی مفید است که یک فرمان پیچیده ساخته اید یا دستور خود را اصلاح کرده اید .perlcriticrc
را فایل کنید و میخواهید ببینید دقیقاً کدام خطمشیها قرار است اجرا شوند (یا نه
بر حسب مورد اجرا شود). برای هر خط مشی، نام، شدت پیشفرض و پیشفرض
موضوعات نشان داده شده است.
"--list-themes"
لیستی از تمام تم های ماژول های Perl::Critic::Policy را که پیدا شده اند نمایش می دهد.
روی این ماشین
"--profile-proto"
فهرست گستردهای از همه ماژولهای Perl::Critic::Policy را نشان میدهد که در
این ماشین. برای هر خط مشی، نام، شدت پیشفرض و مضامین پیشفرض هستند
نشان داده شده است، و همچنین نام هر پارامتر اضافی که سیاست پشتیبانی می کند. در
فرمت به عنوان نمونه اولیه برای شما مناسب است .perlcriticrc فایل.
"--فقط"
به perlcritic هدایت می کند که فقط خط مشی هایی را اعمال کند که به صراحت در شما ذکر شده است
.perlcriticrc فایل. اگر می خواهید فقط از یک زیر مجموعه کوچک از سیاست ها استفاده کنید، این کار مفید است
بدون نیاز به غیرفعال کردن بقیه شما می توانید مقدار پیش فرض را برای این تنظیم کنید
گزینه در شما .perlcriticrc فایل.
"--profile-strictness {warn|fatal|quiet}"
راهنمای perlcritic چگونه برای درمان برخی از مشکلات قابل بازیابی یافت شده در a .perlcriticrc
یا فایلی که از طریق گزینه «--profile» مشخص شده است. مقادیر معتبر "warn" (پیش فرض)،
"کشنده" و "آرام". به عنوان مثال، perlcritic معمولاً فقط در مورد پروفایل ها هشدار می دهد
با اشاره به سیاست های ناموجود، اما این گزینه می تواند این وضعیت را کشنده کند. شما
می توانید مقدار پیش فرض را برای این گزینه در خود تنظیم کنید .perlcriticrc فایل.
"--شمردن"
"-C"
نمایش فقط تعداد تخلفات برای هر فایل. از این ویژگی برای دریافت سریع استفاده کنید
در جایی که یک توده بزرگ از کد ممکن است به بیشترین توجه نیاز داشته باشد رسیدگی کنید.
"--Safari"
استنادات "Perl Best Practice" را به عنوان شماره بخش گزارش کنید
<http://safari.oreilly.com> به جای شماره صفحه از کتاب واقعی. توجه: این
ویژگی هنوز اجرا نشده است
"--color" = مورد "--colour"
این گزینه هنگام خروجی به tty روشن است. هنگام تنظیم، شدت 5 و 4 رنگی هستند
قرمز و زرد به ترتیب. رنگبندی فقط در صورتی اتفاق میافتد که Term::ANSIColor باشد
نصب شده است و فقط در محیط های غیر ویندوز کار می کند. این سوئیچ را نفی کنید
غیر فعال کردن رنگ شما می توانید مقدار پیش فرض را برای این گزینه در خود تنظیم کنید .perlcriticrc
فایل.
"--pager PAGER_COMMAND_STRING"
در صورت تنظیم، perlcritic خروجی خود را به PAGER_COMMAND_STRING داده شده لوله می کند. تو می توانی
مقدار پیش فرض را برای این گزینه در خود تنظیم کنید .perlcriticrc فایل.
تنظیم پیجر رنگ را به طور پیش فرض خاموش می کند. شما باید رنگ را روشن کنید
به صراحت اگر رنگ می خواهید، احتمالاً می خواهید به پیجر خود نیز بگویید
نمایش کاراکترهای خام برای "کمتر" و "بیشتر" از کلید -R استفاده کنید.
"--color-severity-highest COLOR_SPECIFICATION"
رنگی را که برای نقض با بیشترین شدت استفاده می شود، به عنوان اصطلاح::ANSIColor مشخص می کند
مشخصات رنگ همچنین می تواند به عنوان "--colour-severity-highest" مشخص شود.
"--color-severity-5"، یا "-colour-severity-5".
"--رنگ-شدت-بالا COLOR_SPECIFICATION"
رنگ مورد استفاده برای نقض شدید را به عنوان یک اصطلاح::ANSIColor مشخص می کند
مشخصات رنگ همچنین می تواند به عنوان "--colour-severity-high" مشخص شود،
"--color-severity-4"، یا "-colour-severity-4".
"--رنگ-شدت-متوسط COLOR_SPECIFICATION"
رنگی را که برای نقض با شدت متوسط استفاده می شود، به عنوان یک اصطلاح::ANSIColor مشخص می کند
مشخصات رنگ همچنین می تواند به عنوان "--colour- severity-medium" مشخص شود،
"--color-severity-3"، یا "-colour-severity-3".
"--رنگ-شدت-کم COLOR_SPECIFICATION"
رنگی را که برای نقض با شدت کم استفاده می شود، به عنوان رنگ Term::ANSIColor مشخص می کند
مشخصات. همچنین می تواند به عنوان "--colour-severity-low" مشخص شود.
"--color-severity-2"، یا "-colour-severity-2".
"--color-severity-lowest COLOR_SPECIFICATION"
رنگی را که برای کمترین شدت نقض استفاده میشود، بهعنوان اصطلاح::ANSIColor مشخص میکند
مشخصات رنگ همچنین می تواند به عنوان "--رنگ- شدت-کمترین" مشخص شود،
"--color-severity-1"، یا "-colour-severity-1".
"--فایل ها-با-نقض"
فقط نام فایل های دارای تخلف نمایش داده شود. از این ویژگی با استفاده کنید
-تک سیاست برای یافتن فایل هایی که حاوی نقض یک خط مشی معین هستند. همچنین می تواند
مشخص شده به عنوان "--l".
"--فایل ها-بدون-نقض"
فقط نام فایل ها را بدون تخلف نمایش دهید. از این ویژگی با استفاده کنید
-تک سیاست برای یافتن فایل هایی که حاوی نقض یک خط مشی مشخص نیستند. می توان
همچنین به عنوان "--L" مشخص شود.
"--program-extensions file_name_extension"
به «perlcritic» بگویید فایلهایی را که نامشان به پسوند نام فایل داده شده ختم میشود، بهعنوان مورد استفاده کند
برنامه ها، نه به عنوان ماژول. اگر یک '.' پیشرو مطلوب است، باید به صراحت مشخص شود،
به عنوان مثال
--program-extensions .pl
تطبیق به حروف کوچک و بزرگ حساس است و این گزینه ممکن است هر چند بار مشخص شود
مورد نظر، به عنوان مثال
--program-extensions .pl --program-extensions .cgi
موارد فوق را می توان با ذکر پسوند نام فایل نیز انجام داد:
--program-extensions '.pl .cgi'
فایل هایی که نام آنها به ".PL" ختم می شود همیشه جزو برنامه ها محسوب می شوند.
"--Doc PATTERN"
Perldoc را برای همه ماژول های Perl::Critic::Policy که با "m/PATTERN/ixms" مطابقت دارند نمایش می دهد.
از آنجایی که ماژول های خط مشی معمولاً نام های نسبتاً طولانی دارند، این فقط یک نام بیشتر ارائه می دهد
راه مناسب برای گفتن چیزی مانند: "perldoc
Perl::Critic::Policy::ValuesAndExpressions::RequireUpperCaseH eredocTerminator" در
خط فرمان
"--اجازه دادن-ناامن"
این گزینه به "perlcritic" اجازه می دهد تا از سیاست هایی که به عنوان علامت گذاری شده اند استفاده شود
"ناامن". سیاست های ناامن ممکن است با کامپایل و اجرا منجر به عملیات مخاطره آمیز شود
کدی که آنها تحلیل می کنند همه سیاستهایی که در هسته Perl::Critic ارائه میشوند
توزیع امن هستند با این حال، سیاست های شخص ثالث، مانند سیاست های موجود در
Perl::Critic::توزیع پویا ایمن نیستند. توجه داشته باشید که "ایمنی" افتخاری است -- اگر
نویسنده خطمشی یک خطمشی را بهعنوان ایمن علامتگذاری میکند، این تضمینی نیست که کار زشتی انجام ندهد
همه چیز. If شما نکن اعتماد خود را سیاست و la رمز شما هستند تجزیه و تحلیل، سپس do نه
استفاده کنید این گزینه.
"--ساکت"
هنگامی که هیچ تخلفی پیدا نشد، پیام "منبع OK" را سرکوب کنید.
"--کمک"
"-؟"
"-H"
خلاصه ای از گزینه ها و خروجی ها را نمایش می دهد.
"--گزینه ها"
توضیحات گزینه ها و خروجی ها را نمایش می دهد. در حالی که این خروجی طولانی است، آن را
هیچ جایی نزدیک به طول خروجی "--man" نیست.
"--مرد"
راهنمای کامل "perlcritic" را نمایش می دهد و خارج می شود.
"--نسخه"
"-V"
شماره نسخه "perlcritic" را نمایش می دهد و خارج می شود.
پیکربندی
اکثر تنظیمات Perl::Critic و هر یک از ماژول های Policy را می توان توسط آن کنترل کرد
یک فایل پیکربندی فایل تنظیمات پیش فرض فراخوانی می شود .perlcriticrc.
"perlcritic" ابتدا این فایل را در دایرکتوری فعلی و سپس در خانه شما جستجو می کند
فهرست راهنما. همچنین، میتوانید متغیر محیطی «PERLCRITIC» را به طور واضح تنظیم کنید
به فایل دیگری در مکانی دیگر اشاره کنید. اگر هیچ یک از این فایل ها وجود نداشته باشد، و
گزینه "--profile" در خط فرمان داده نمی شود، سپس همه سیاست ها با
پیکربندی پیش فرض آنها
فرمت فایل پیکربندی مجموعه ای از بلوک های سبک INI است که حاوی کلید-
جفت های مقدار با "=" از هم جدا شده اند. نظرات باید با "#" شروع شوند و می توانند روی a قرار گیرند
در صورت تمایل خط جداگانه یا بعد از جفت نام-مقدار.
تنظیمات پیش فرض خود perlcritic را می توان تنظیم کرد قبل از la اول تحت عنوان مسدود کردن. برای
به عنوان مثال، قرار دادن یک یا همه اینها در بالای صفحه خود .perlcriticrc فایل را تنظیم می کند
مقدار پیش فرض برای آرگومان خط فرمان مربوطه.
شدت = 3 #صحیح یا سطح نامگذاری شده
فقط = 1 #صفر یا یک
نیرو = 0 #صفر یا یک
verbose = 4 #Integer or format spec
top = 50 #یک عدد صحیح مثبت
موضوع = (pbp + امنیت) * اشکالات #یک عبارت تم
شامل = NamingConventions ClassHierarchies #فضا محدود لیست
exclude = Variables Modules::RequirePackage #فضا-لیست محدود شده
باقیمانده فایل پیکربندی یک سری بلوک مانند زیر است:
[Perl::Critic::Policy::Category::PolicyName]
شدت = 1
set_themes = نوار فو
add_themes = baz
arg1 = مقدار 1
arg2 = مقدار 2
"Perl::Critic::Policy::Category::PolicyName" نام کامل ماژولی است که پیاده سازی می کند
سیاست. ماژول های خط مشی توزیع شده با Perl::Critic در گروه بندی شده اند
دسته بندی بر اساس فهرست مطالب کتاب دامیان کانوی پرل بهترین تمرین.
برای اختصار، میتوانید قسمت «Perl::Critic::Policy» نام ماژول را حذف کنید.
"شدت" سطح اهمیتی است که می خواهید به خط مشی قائل شوید. همه سیاست ها
ماژول ها با یک مقدار شدت پیش فرض از 1 (کمترین شدت) تا 5 (بیشترین) تعریف می شوند.
شدید). با این حال، ممکن است با شدت پیشفرض مخالف باشید و به آن علامت بدهید
شدت بیشتر یا کمتر، بر اساس فلسفه کدنویسی خودتان. می توانید "شدت" را تنظیم کنید
به یک عدد صحیح از 1 تا 5، یا از یکی از نام های معادل استفاده کنید:
SEVERITY NAME ... معادل ... SEVERITY NUMBER است
-------------------------------------------------- -
ملایم 5
سخت 4
خشن 3
بی رحمانه 2
وحشیانه 1
"set_themes" تم را برای خطمشی تنظیم میکند و موضوع پیشفرض آن را لغو میکند. بحث و جدل
رشته ای از یک یا چند کلمه حروف عددی با فاصله خالی است. مضامین موردی هستند
غیر حساس برای اطلاعات بیشتر به "موضوعات سیاست" مراجعه کنید.
"add_themes" به تم های پیش فرض این خط مشی اضافه می شود. استدلال یک رشته است
یک یا چند کلمه با فضای خالی محدود شده است. تم ها به حروف بزرگ و کوچک حساس هستند. به "موضوعات سیاست" مراجعه کنید
برای اطلاعات بیشتر.
جفتهای کلید-مقدار باقیمانده پارامترهای پیکربندی هستند که به آن منتقل میشوند
سازنده آن خط مشی سازنده های اکثر ماژول های Policy پشتیبانی نمی کنند
آرگومانها و آنهایی که دارند باید پیشفرضهای معقولی داشته باشند. مستندات را ببینید
ماژول سیاست مناسب برای جزئیات بیشتر.
به جای اینکه شدت یک خط مشی مشخص را دوباره تعریف کنید، می توانید یک خط مشی را به طور کامل غیرفعال کنید
با اضافه کردن یک '-' به نام ماژول در فایل پیکربندی خود. به این ترتیب،
خط مشی هرگز بارگذاری نمی شود، صرف نظر از "--severity" داده شده در خط فرمان.
یک پیکربندی ساده ممکن است به شکل زیر باشد:
#------------------------------------------------ --------------
# فکر می کنم اینها واقعا مهم هستند، بنابراین همیشه آنها را بارگذاری کنید
[TestingAndDebugging::RequireUseStrict]
شدت = 5
[TestingAndDebugging::RequireUseWarnings]
شدت = 5
#------------------------------------------------ --------------
# فکر میکنم این موارد اهمیت کمتری دارند، بنابراین فقط وقتی از شما خواسته شد بارگیری کنید
[متغیرها::ProhibitPackageVars]
شدت = 2
[ControlStructures::ProhibitPostfixControls]
اجازه = اگر مگر # پیکربندی سفارشی من
شدت = بی رحمانه # همان "شدت = 2"
#------------------------------------------------ --------------
# به این خطمشیها یک موضوع سفارشی بدهید. فقط میتونم فعال کنم
این سیاستها را با گفتن "perlcritic --theme 'larry || curly'" #
[ماژول ها::RequireFilenameMatchesPackage]
add_themes = لری
[TestingAndDebugging::RequireTestLabels]
add_themes = موی فرفری
#------------------------------------------------ --------------
# من اصلا با اینها موافق نیستم، پس هرگز آنها را بارگذاری نکنید
[-Conventions Naming:: حروف بزرگ]
[-ValuesAndExpressions::ProhibitMagicNumbers]
#------------------------------------------------ --------------
# برای همه سیاستهای دیگر، شدت پیشفرض را میپذیرم،
# بنابراین هیچ پیکربندی اضافی برای آنها لازم نیست.
توجه داشته باشید که تمام خط مشی های موجود در توزیع Perl::Critic که دارای عدد صحیح هستند
پارامترها زیرخط ("_") را در مقادیر خود می پذیرند، مانند حروف عددی Perl. برای
مثال،
[ValuesAndExpressions::RequireNumberSeparators]
حداقل مقدار = 1_000
برای مثالهای پیکربندی اضافی، به ادامه مطلب مراجعه کنید perlcriticrc فایلی که در این موجود است
مثال ها دایرکتوری این توزیع
پیکربندی Perl::Critic خود دامیان کانوی نیز در این توزیع گنجانده شده است
نمونه ها/perlcriticrc-conway.
L' سیاست های
تعداد زیادی از ماژول های Policy با Perl::Critic توزیع شده اند. شرح داده شده اند
به طور خلاصه در سند همراه Perl::Critic::PolicySummary و جزئیات بیشتر در
خود ماژول های فردی برای دیدن perldoc برای همه، بگویید "perlcritic --doc PATTERN".
ماژول های خط مشی که با regex "m/PATTERN/ixms" مطابقت دارند
تعدادی توزیع از سیاست های اضافی در CPAN وجود دارد. اگر پرل:: منتقد
شامل خط مشی مورد نظر شما نیست، ممکن است برخی قبلاً آن را نوشته باشند. رجوع کنید به "SEE
ALSO" در Perl::Critic برای لیستی از برخی از این توزیع ها.
سیاست تم
هر خط مشی با یک یا چند «موضوع» تعریف می شود. از تم ها می توان برای ایجاد دلخواه استفاده کرد
گروه های سیاست آنها در نظر گرفته شده اند تا مکانیزمی جایگزین برای انتخاب ارائه دهند
مجموعه سیاست های دلخواه شما برای مثال، ممکن است بخواهید مجموعه خاصی از آن را غیرفعال کنید
خط مشی ها هنگام تجزیه و تحلیل برنامه های آزمون. برعکس، ممکن است بخواهید فقط یک مورد خاص را فعال کنید
زیر مجموعه سیاست ها هنگام تجزیه و تحلیل ماژول ها.
خط مشی هایی که با Perl::Critic ارسال می شوند به موضوعات زیر تقسیم شده اند.
این فقط تلاش ما برای ارائه چند گروه بندی منطقی اساسی است. شما در اختراع آزاد هستید
تم های جدید متناسب با نیاز شما
شرح تم
-------------------------------------------------- ----------------------
هسته تمام خط مشی هایی که با Perl::Critic ارائه می شوند
خطمشیهای pbp که مستقیماً از "Perl Best Practices" آمده است
خطمشیهایی که از اشکالات جلوگیری یا آشکار میکنند
certrec سیاست هایی که CERT توصیه می کند
certrule سیاست هایی که CERT قوانینی را در نظر می گیرد
سیاست های نگهداری که بر سلامت طولانی مدت کد تأثیر می گذارد
سیاست های آرایشی که فقط تاثیر سطحی دارند
پیچیدگی سیاست هایی که به طور خاص به پیچیدگی کد مربوط می شود
سیاست های امنیتی که به مسائل امنیتی مربوط می شود
تستها سیاستهایی که مختص برنامههای آزمایشی هستند
بگویید «perlcritic --list» تا فهرستی از همه خطمشیهای موجود و مضامین موجود را دریافت کنید
مرتبط با هر کدام همچنین میتوانید موضوع هر خطمشی را در خود تغییر دهید
.perlcriticrc فایل. برای اطلاعات بیشتر در مورد آن به بخش "پیکربندی" مراجعه کنید.
با استفاده از گزینه خط فرمان "--theme"، می توانید یک قانون پیچیده دلخواه ایجاد کنید
تعیین می کند که کدام سیاست ها را اعمال کند. تقدم همان کد پرل معمولی است و شما
می توانید از پرانتز برای اعمال اولویت نیز استفاده کنید. اپراتورهای پشتیبانی شده عبارتند از:
مثال جایگزین اپراتور
-------------------------------------------------- ---------------
&& و "pbp && هسته"
|| یا 'pbp || (اشکالات و امنیت)'
! نه 'pbp && ! (قابلیت حمل || پیچیدگی)'
نامهای تم به حروف بزرگ و کوچک حساس هستند. اگر "--theme" روی یک رشته خالی تنظیم شده باشد، آن را
همه سیاست ها را درست ارزیابی می کند.
خم شدن L' قوانین
Perl::Critic یک رویکرد سختگیرانه برای کد شما اتخاذ می کند: یا رعایت می کنید یا نمی کنید. که در
در دنیای واقعی، رعایت کامل کدنویسی همیشه عملی (یا حتی ممکن) نیست
استانداردها در چنین مواردی، عاقلانه است که نشان دهید آگاهانه آن را نقض می کنید
استانداردها و اینکه شما یک دلیل خوب (DGR) برای انجام این کار دارید.
برای کمک به آن موقعیتها، میتوانید Perl::Critic را هدایت کنید تا خطوط خاصی را نادیده بگیرد یا
بلوک های کد با استفاده از حاشیه نویسی:
نیاز به 'LegacyLibaray1.pl'; ## منتقد نیست
نیاز به 'LegacyLibrary2.pl'; ## منتقد نیست
برای عنصر $ من (@list) {
## منتقد نیست
$foo = ""; #نقض "منع نقل قول های خالی"
$barf = bar() اگر $foo; #نقض 'ProhibitPostfixControls'
#کد شیطانی دیگر...
## از منتقد استفاده کنید
#کد خوب...
do_something ($_);
}
حاشیه نویسی "## بدون منتقد" Perl::Critic را هدایت می کند تا خطوط کد باقی مانده را نادیده بگیرد.
تا زمانی که یک حاشیه نویسی "## استفاده از منتقد" پیدا شود. اگر حاشیهنویسی «## بدون منتقد» روی آن باشد
همان خط یک عبارت کد، سپس فقط آن خط کد نادیده گرفته می شود. برای کارگردانی
perlcritic برای نادیده گرفتن حاشیه نویسی "## no kritik"، از گزینه "--force" استفاده کنید.
حاشیه نویسی "## بدون منتقد" همه خط مشی های فعال را غیرفعال می کند. اگر می خواهید غیرفعال کنید
فقط سیاستهای خاص، فهرستی از نامهای خط مشی را به عنوان آرگومان اضافه کنید، همانطور که برای آن میزنید
پراگمای "بدون سخت گیری" یا "بدون هشدار". به عنوان مثال، این کار را غیرفعال می کند
خط مشی های «ProhibitEmptyQuotes» و «ProhibitPostfixControls» تا پایان بلوک یا
تا حاشیه نویسی بعدی "## استفاده از منتقد" (هر کدام که اول بیاید):
## بدون منتقد (EmptyQuotes، PostfixControls)؛
# اکنون از ValuesAndExpressions::ProhibitEmptyQuotes معاف شوید
$foo = "";
# اکنون ControlStructures::ProhibitPostfixControls را معاف کنید
$barf = bar() اگر $foo;
# هنوز تابع ValuesAndExpression::RequireNumberSeparators است
$long_int = 10000000000;
از آنجایی که نامهای خطمشی با آرگومانهای «## بدون منتقد» بهعنوان معمولی مطابقت دارند
عبارات، میتوانید نامهای خطمشی را مخفف کنید یا کل خانواده سیاستها را غیرفعال کنید
در یک شات مانند این:
## بدون منتقد (Naming Conventions)
# اکنون از NamingConventions::Conventions معاف هستید
my $camelHumpVar = 'foo';
# اکنون از NamingConventions::Conventions معاف هستید
زیر camelHumpSub {}
لیست آرگومان باید در داخل پرانتز قرار گیرد و باید حاوی یک یا چند کاما باشد.
کلمات خالی جدا شده (یعنی از نقل قول استفاده نکنید). حاشیه نویسی "## بدون منتقد" می تواند باشد
تودرتو، و خطمشیهایی که با حاشیهنویسی داخلی نامگذاری شدهاند، همراه با آنها غیرفعال میشوند
قبلاً یک حاشیه نویسی خارجی را غیرفعال کرده است.
برخی از خط مشی ها مانند "Subroutines::ProhibitExcessComplexity" برای کل بلوک اعمال می شود
کد در آن موارد، "## بدون منتقد" باید در خطی که نقض است ظاهر شود
گزارش شده است. مثلا:
تابع_زیر پیچیده { ## بدون منتقد (ProhibitExcessComplexity)
# کد شما اینجاست...
}
برخی از خط مشی ها مانند "Documentation::RequirePodSections" برای کل سند اعمال می شود، در
که موارد تخلف در خط 1 گزارش شده است. اما اگر پرونده نیاز به خط شبانگ داشته باشد، آن را
قرار دادن "## بدون منتقد" در خط اول فایل غیرممکن است. این یک شناخته شده است
محدودیت و در نسخه های بعدی به آن پرداخته خواهد شد. به عنوان یک راه حل، می توانید غیرفعال کنید
خطمشیهای تحتتاثیر در خط فرمان یا در شما .perlcriticrc فایل. اما مراقب این باشید
این بر تجزیه و تحلیل تاثیر می گذارد تمام فایل های.
از این ویژگی هوشمندانه استفاده کنید. "## بدون منتقد" باید در کمترین محدوده ممکن استفاده شود، یا
فقط در خطوط تک کد. و همیشه باید تا حد امکان در مورد آن مشخص باشید
کدام خطمشیها را میخواهید غیرفعال کنید (یعنی هرگز از یک "## بدون منتقد" خالی استفاده نکنید). اگر
Perl:: منتقد از کد شما شکایت می کند، سعی کنید قبل از متوسل شدن یک راه حل سازگار پیدا کنید
به این ویژگی
تدوین ادغام
برای سهولت استفاده، "perlcritic" را می توان با ویرایشگر متن مورد علاقه شما ادغام کرد. در
قابلیتهای قالببندی خروجی "perlcritic" به طور خاص برای استفاده با
حالت های "grep" یا "کامپایل" در ویرایشگرهایی مانند "emacs" و "vim" موجود است. در این حالت ها،
می توانید یک دستور دلخواه را اجرا کنید و ویرایشگر خروجی را به یک تعاملی تجزیه می کند
بافری که می توانید روی آن کلیک کرده و به خط کد مربوطه بروید.
تیم Perl::Critic از همه کسانی که به ادغام Perl-Critic با آنها کمک کرده اند تشکر می کند
ویرایشگر مورد علاقه مشارکتهای شما بهویژه Perl-Critic را به یک ابزار مناسب تبدیل کرده است
ابزار کاربر پسند برای توسعه دهندگان پرل از همه راه راه. ما صمیمانه از زحمات شما قدردانی می کنیم
کار می کنند.
EMACS
Joshua ben Jore یک حالت کوچک برای emacs نوشته است که به شما امکان می دهد perlcritic را روی آن اجرا کنید.
منطقه یا بافر فعلی می توانید آن را در صورت تقاضا اجرا کنید، یا آن را برای اجرا پیکربندی کنید
هنگامی که بافر را ذخیره می کنید به طور خودکار. خروجی در یک کامپایلر با پیوند داغ ظاهر می شود
بافر کد و دستورالعمل نصب را می توان در موضوعات فهرست راهنما
در داخل این توزیع
VIM
اسکات پشاک منتشر کرده است perlchecker.vim، که در دسترس است
<http://www.vim.org/scripts/script.php?script_id=1731>.
gVIM
Fritz Mehner اخیراً پشتیبانی از "perlcritic" را به پلاگین فوق العاده gVIM خود اضافه کرده است. که در
افزونه فریتز علاوه بر ارائه یک IDE بسیار Perlish، دسترسی با یک کلیک را به
"perlcritic" و بسیاری از ابزارهای بسیار مفید دیگر. و همه به طور یکپارچه در یکپارچه شده است
ویراستار. برای تکمیل، به "/lug.fh-swf.de/vim /vim-perl/screenshots-en.html" در http: مراجعه کنید.
جزئیات.
EPIC
EPIC یک Perl IDE منبع باز مبتنی بر پلت فرم Eclipse است. ویژگی ها عبارتند از نحو
برجسته کردن، بررسی نحوی در حین پرواز، کمک محتوا، تکمیل کد، پشتیبانی از perldoc،
قالب بندی منبع با Perl::Tidy، الگوهای کد، ابزار ویرایش عبارات معمولی و
ادغام با دیباگر پرل نسخه های اخیر EPIC همچنین دارای پشتیبانی داخلی هستند
برای پرل:: منتقد. حداقل یک شرکت کننده Perl::Critic به EPIC سوگند یاد می کند. قابل اعتماد و متخصص
<http://e-p-i-c.sourceforge.net> برای اطلاعات بیشتر در مورد EPIC.
ویرایش BBEdit
جاش کلارک یک پلاگین عالی Perl-Critic برای BBEdit تولید کرده است. دیدن
<http://globalmoxie.com/projects/bbedit-perl-critic/index.shtml> برای دانلود،
دستورالعمل نصب و استفاده کاربران اپل خوشحال می شوند!
کومودو
Komodo یک IDE اختصاصی برای Perl و چندین زبان پویا دیگر است. شروع در
نسخه 5.1.1، کومودو از Perl-Critic پشتیبانی داخلی دارد، اگر Perl::Critic دارید.
و ماژول های نقد نصب شده است. نسخه های آزمایشی رایگان کومودو را می توان از سایت دریافت کرد
وب سایت ActiveState درhttp://www.activestate.com>.
ActivePerl
ActivePerl شامل یک رابط گرافیکی بسیار نرم برای پیکربندی و اجرای Perl- است.
منتقدی به نام "perlcritic-gui". نسخه رایگان انجمن ActivePerl را می توان دریافت کرد
از وب سایت ActiveState درhttp://www.activestate.com>.
خروج وضعیت
اگر "perlcritic" خودش هر گونه خطایی داشته باشد، با وضعیت == 1 خارج می شود. اگر خطایی وجود نداشته باشد،
اما "perlcritic" نقض خط مشی را در کد منبع شما پیدا می کند، با وضعیت == 2 خارج می شود.
هیچ خطایی وجود نداشت و هیچ تخلفی مشاهده نشد، خروجی ها با وضعیت == 0.
L' پرل:: منتقد فلسفه
استانداردهای کدنویسی عمیقاً شخصی و بسیار ذهنی هستند. هدف Perl::Critic
به شما کمک می کند تا کدی بنویسید که با مجموعه ای از بهترین روش ها مطابقت داشته باشد. اولیه ما
هدف دیکته کردن این شیوه ها نیست، بلکه اجرای آن است
شیوه های کشف شده توسط دیگران در نهایت، شما قوانین را تعیین می کنید -- Perl::Critic است
صرفاً ابزاری برای تشویق ثبات اگر سیاستی وجود دارد که فکر می کنید چنین است
مهم یا نادیده گرفته شده است، ما بسیار سپاسگزار خواهیم بود برای مشارکت، یا
شما به سادگی می توانید مجموعه خصوصی سیاست های خود را در Perl::Critic بارگذاری کنید.
در حال گسترش L' منتقد
طراحی مدولار Perl::Critic برای تسهیل افزودن سیاست های جدید در نظر گرفته شده است.
شما باید درک درستی از PPI داشته باشید، اما اکثر ماژول های Policy زیبا هستند
ساده است و فقط به 20 خط کد نیاز دارد. لطفا ببینید
فایل Perl::Critic::DEVELOPER به صورت گام به گام در این توزیع گنجانده شده است
نمایش نحوه ایجاد ماژول های سیاست جدید.
اگر ماژول های سیاست جدیدی را توسعه می دهید، در صورت تمایل آنها را به " ارسال کنید[ایمیل محافظت شده]>"
و من خوشحال خواهم شد که آنها را در توزیع Perl::Critic قرار دهم. یا اگر شما
میخواهم مستقیماً روی پروژه Perl::Critic کار کنم، میتوانید مخزن ما را در آن فورک کنید
"/github.com/Perl- Critic/Perl- Critic.git" در http:.
تیم Perl::Critic نیز برای استخدام در دسترس است. اگر سازمان شما کدگذاری خاص خود را دارد
استانداردها، ما می توانیم خط مشی های سفارشی را برای اجرای دستورالعمل های محلی شما ایجاد کنیم. یا اگر شما
پایه کد مستعد الگوی نقص خاصی است، ما می توانیم سیاست هایی را طراحی کنیم که به شما کمک کند
شما متوجه این نقص های پرهزینه می شوید قبل از وارد تولید می شوند. برای بحث در مورد نیازهای خود با
تیم Perl::Critic، فقط تماس بگیرید "[ایمیل محافظت شده]>".
تماس با L' توسعه TEAM
شما تشویق می شوید که در لیست پستی مشترک شوید. ارسال پیام به
<لازمه: mailto[ایمیل محافظت شده]> برای جلوگیری از هرزنامه، ممکن است از شما خواسته شود
قبل از ارسال پیام به Tigris.org برای یک حساب کاربری ثبت نام کنید
لیست پستی همچنین به آرشیو لیست پستی در
<http://perlcritic.tigris.org/servlets/SummarizeList?listName=users>. حداقل یک عضو
از تیم توسعه معمولاً در آنجا حضور دارند و
می توانید Perl::Critic را در توییتر دنبال کنید .
با استفاده از خدمات onworks.net از perlcriticp به صورت آنلاین استفاده کنید
