Perl 最佳实践(节选) --- 02

本文提供了一套详细的Perl代码书写规范,包括括号使用、代码格式、缩进等具体规则,并推荐了代码美化工具perltidy。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第二章:代码部署

零零壹.

K&R风格表示大括号和小括号。

即:

my @name = (

‘Damian’,

‘Matthew’

);

for my $name (@names) {

formy $word ( anagrams_of(lc $name) ) {

print“$wor\n”;

}

}

零零贰.

控制关键字和后继开口括号间要以空白分割

例如:

formy $result (@results) {

print_sep();

print$result;

}

while($min < $max) {

my$try = ($max - $min) / 2;

if($value[$try] < $target) {

$max= $try;

}

Else {

$min= $try;

}

}

零零叁.

不要把子程序或变量名称与后继开口括号分割开来。

即:

my@candiates = get_candidates($marker);

CANDIDATE:

formy $i (0..$#candidates) {

nextCANDIATE if open_region($i);

$candidates[$i]

=$incumbent{ $candidates[$i]{region} };

}

零零肆.

不要对内置函数和“名誉”内置函数使用不必要的小括号。

即:

while(my $record = <$results_file>) {

chomp$record;

my($name, $votes) = split “\t”, $record;

print‘Votes for ’,

substr($name,0, 10), # 为强加优先级所以需要小括号

“:$votes (verified)\n”;

}

零零伍.

把复杂的键或索引与周围的括号分开来。

例如:

$candidates[$i]= $incumbent{ $candidates[$i]{ get_region() } };

零零陆.

利用空白让二元运算符相对于其操作数更醒目。

例如:

my $displacement

=$initial_velocity * $time + 0.5 * $acceleration * $time**2;

零零柒.

每条语句之后都放分号。

例如:

while (my $line = <>) {

chomp$line;

if( $line =~ s{\A (\s*) – (.*)}{$1#$2}xms ) {

push@comments, $2;

}

Print$line;

}

零零捌.

多行列表中的每个值后面都放逗号。

例如:

my @dwarves = (

‘Happy’,

‘Sleepy’,

‘Sneezy’

);

零零玖.

使用78列的代码行。

因为印刷文件、旧式VGA显示设备、展示软件和应用光学没有解除这些限制,以大于80列的宽度作为代码的格式安排并不合理。

零壹零.

使用4列缩排层次。

零壹壹.

以空格缩排,不要以制表符(tab)缩排。

零壹贰.

绝不要把两条语句放在同一行。

零壹叁.

代码要分段落。

零壹肆.

不要紧贴着else

“紧贴的”else看起来像这样:

} else {

正确的:

}

else{

零壹伍.

垂直对齐相对应的项目。

例如:

$name =standardize_name($name);

$age =time - $birth_date;

$status =‘active’;

零壹陆.

在运算符之前断开冗长表达式。

例如:

push @steps, $steps[-1]

+$radial_velocity * $elapsed_time

+$orbital_velocity * ($phase + $phase_shift)

-$DRAG_COEFF * $altitude

;

零壹柒.

把语句中间的冗长表达式分离出来。

例如:

my $next_step = $steps[-1]

+$radial_velocity * $elapsed_time

+$orbital_velocity * ($phase + $phase_shift)

-$DRAG_COEEF * $altitue

;

add_step ( \@steps, $next_step,$elapsed_time );

零壹捌.

一定要在最低可能优先级的运算符之处断开冗长表达式。

例如:

push @steps, $steps[-1]

+$radial_velocity * $elapsed_time

+$orbital_velocity

*($phase + $phase_shift)

-$DRAG_COEFF * $altitude

;

零壹玖.

在赋值运算符前断开冗长的赋值运算。

例如:

$predicted_val{$current_data_set}[$next_iteration]

=$average + $predicted_change * $fudge_factor;

零贰零.

以列安排级联三元运算符。

例如:

my $name = defined $customer{name} ?$customer{name}

: ‘Sir or Madam’

;

零贰壹.

冗长列表要加小括号。

例如:

print (

‘Processing’,

Scalar(@items),

‘items at ’,

time,

“\n”

);

零贰贰.

机械式地执行你所选择的部署风格。

Perl有可用的格式化工具:perltidy。

网址:http://perltidy.sourceforge.net

资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在本文中,我们将探讨如何通过 Vue.js 实现一个带有动画效果的“回到顶部”功能。Vue.js 是一款用于构建用户界面的流行 JavaScript 框架,其组件化和响应式设计让实现这种交互功能变得十分便捷。 首先,我们来分析 HTML 代码。在这个示例中,存在一个 ID 为 back-to-top 的 div 元素,其中包含两个 span 标签,分别显示“回到”和“顶部”文字。该 div 元素绑定了 Vue.js 的 @click 事件处理器 backToTop,用于处理点击事件,同时还绑定了 v-show 指令来控制按钮的显示与隐藏。v-cloak 指令的作用是在 Vue 实例渲染完成之前隐藏该元素,避免出现闪烁现象。 CSS 部分(backTop.css)主要负责样式设计。它首先清除了一些默认的边距和填充,对 html 和 body 进行了全屏布局,并设置了相对定位。.back-to-top 类则定义了“回到顶部”按钮的样式,包括其位置、圆角、阴影、填充以及悬停时背景颜色的变化。此外,与 v-cloak 相关的 CSS 确保在 Vue 实例加载过程中隐藏该元素。每个 .page 类代表一个页面,每个页面的高度设置为 400px,用于模拟多页面的滚动效果。 接下来是 JavaScript 部分(backTop.js)。在这里,我们创建了一个 Vue 实例。实例的 el 属性指定 Vue 将挂载到的 DOM 元素(#back-to-top)。data 对象中包含三个属性:backTopShow 用于控制按钮的显示状态;backTopAllow 用于防止用户快速连续点击;backSeconds 定义了回到顶部所需的时间;showPx 则规定了滚动多少像素后显示“回到顶部”按钮。 在 V
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值