这似乎是多余的,从Perl脚本本身运行perl.
my $Pref = "&*())(*&^%$#@!";
system("perl -pi -e 's|^SERVERNAME.*\$|SERVERNAME \"\Q$Pref\E\"|g' pserver.prefs");
Run Code Online (Sandbox Code Playgroud)
什么是模拟-pi的实际Perl代码?我只想要一些像Perl上的sed一样的东西,尽可能简单.
基于Todd Gardner的网站,它似乎基本上只是读取和写入所有文件,试图将正则表达式应用于每一行.对于像我这样的noob Perl用户来说,解决方案有点复杂,所以我使用以下方法将其缩小:
my $ftp = "/home/shared/ftp";
my $backup = $ftp . ".bak";
rename($ftp, $backup);
open (FTP, "<", $backup) or die "Can't open $backup: $!";
open (FTP_OUT, ">", $ftp) or die "Can't open $ftp: $!";
while (<FTP>)
{
$_ =~ s|$panel_user \Q$panel_oldpass\E |$panel_user \Q$panel_newpass\E |g;
print FTP_OUT $_;
}
close(FTP);
close(FTP_OUT);
Run Code Online (Sandbox Code Playgroud)
使用两个打开有什么问题吗?应该避免这种情况还是简单的解决方案?
我必须承认,系统sed命令更简单,更清晰.
我想列出只有0和1的排列.类似于二进制但允许变量长度,不必等于8长度.例如:
0
1
00
01
10
11
000
001
010
011
100
101
110
111
Run Code Online (Sandbox Code Playgroud)
一直到X的长度都满足.如何才能做到这一点?
我可以猜测它与使用unsigned long long int有关.
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
typedef unsigned long long int uint64;
int main(int argc, char *argv[])
{
uint64 number_in_question = 600851475143LL;
long double sqrt_in_question = sqrt(number_in_question);
bool primes_array[number_in_question+1];
for (uint64 i = 0; i <= number_in_question; i++) {
primes_array[i] = true;
}
for (uint64 i = 2; i <= sqrt_in_question; i++) {
if(primes_array[i] == true) {
// for every multiple of this prime, mark it as not prime
for (uint64 ii = …Run Code Online (Sandbox Code Playgroud) 这不是我写的; 它是由一个把它传给我的人写的.我与代码的作者失去了联系.我已经使用这段代码几年了,刚才意识到这个错误.似乎字母序列rkey1混淆了输出.
例如turkey1输出作为解密tur79y1.这个Perl代码应输出turkey1而不是tur79y1:
$String = "turkey1";
$e = &encode_escaped(&palace_encrypt($String));
$d = &palace_decrypt(&decode_escaped("'\"".$e."\"'"));
print $d."<br>\n";
KEY REMOVED BY OWNER
sub palace_decrypt
{
local $lastchar = 0;
local $rc = 0;
local @bs;
for($i=length($_[0])-1; $i>=0; $i--) {
local $tmp = ord(substr($_[0], $i, 1));
$bs[$i] = $tmp ^ $palace_key[$rc++] ^ $lastchar;
$lastchar = $tmp ^ $palace_key[$rc++];
}
return join("", map { chr($_) } @bs);
}
sub decode_escaped
{
$_[0] =~ m/\"(.*)\"/;
local $str …Run Code Online (Sandbox Code Playgroud) 我知道我知道,数据库对我想做的事情更好,但我不想要处理数据库和学习东西的麻烦.
我有一个类似于CSV的CSV
TestUser,2010/07/27 13:26:25,2010/07/27 13:26:29,0.0011,0.0006,0.06
TestUser,2010/07/27 14:22:12,2010/07/27 14:22:24,0.0033,0.0027,0.27
TestUser,2010/07/27 14:22:41,2010/07/27 14:22:53,0.0033,0.0028,0.28
TestUser,2010/07/27 14:25:26,2010/07/27 14:25:33,0.0019,0.0015,0.30
Run Code Online (Sandbox Code Playgroud)
第二列是我作为UID(唯一ID)使用的,因此它在CSV中永远不会相同.我用来写csv的PHP代码是:
$myFile = "data.csv";
$fh = fopen($myFile, 'a') or die("can't open file");
$stringData = $_POST["Name"].",".$_POST["DateStart"].",".$_POST["DateStop"].",".$_POST["TotalHours"].",".$_POST["Hours"].",".$_POST["Pay"]."\n";
fwrite($fh, $stringData);
fclose($fh);
Run Code Online (Sandbox Code Playgroud)
如果有一个具有相同DateStart(UID)的人运行PHP,它将需要做什么,它将覆盖具有相同UID的任何东西.基本上我认为它可能必须通过每行的文件数组,然后当它到达具有相同UID的行时,它将拦截POST的内容,而不是它有什么.
我不确定这是否是实现我想要的最佳方式.
我知道每种编程语言都有一定的指导和风格.我的问题是关于我编写代码的两种语言,这种语言不是很受欢迎或记录在案.
我知道这个话题非常广泛,每个人都有自己独特的做事方式.我想要的是听到某些风格的优点,缺点.
为了探索这个问题,假设您正在编写自己的编程语言,基于您过去的经验,最好的方法是什么?
请记住,可能会有基于特定语言的起伏,所以请考虑这种语言是否无关紧要.我仍然很喜欢编程,所以我想养成使代码可读且易于理解的最佳习惯.
有很多话题需要讨论,我可以通过基础知识运行:
全局变量
它们应该以_开头并全部大写吗?
局部变量
它们应该以_结尾并始终是小写的吗?
变量名称
如果我定义的是员工的小时工资,那么它应该是EmployeeHourlyWage,Employee_Hourly_Wage吗?
变量类型
如果你在名称中包含变量的类型,例如,如果我定义$ Hours并且它已经存储了一个整数,我应该将它命名为$ Hour_INT,以便我知道它何时引用它是什么类型?谁知道,我可能有$ Hours_FLOAT
Curly Brackets括号
是否应该与自己排列这样的词,或者什么?哪一项最好,首选,最具可读性?
IF ($Test) {
//code
} ELSE {
//code
}
IF ($Test)
{
//code
} ELSE {
//code
}
IF ($Test)
{
//code
}
ELSE
{
//code
}
Run Code Online (Sandbox Code Playgroud)
对齐
我不断排列变量和它们的值,所以我知道哪里去了哪里.这是不好的做法:
// Assuming GUI(TOP, LEFT, HEIGHT, WIDTH)
GUI( 23 , 44 , 245 , 2323 )
GUI( 232 , 4332 , 22 , 6576 )
GUI( 21 , 4 , 1 …Run Code Online (Sandbox Code Playgroud) 是否有可能只有CSS有白色背景颜色,然后有50%透明度:
.transparent_class {
filter:alpha(opacity=50);
-moz-opacity:0.5;
-khtml-opacity: 0.5;
opacity: 0.5;
}
还有一个坚实的白色边框?
可能重复:
<??>标签在php 5.3.1中不起作用
我正在运行Debian Lenny,"官方"PHP版本是5.2. - 但是,我遇到了许多现在需要PHP 5.3的东西.经过一些谷歌搜索,我找到了一个网站,以帮助我迫使debian lenny去5.3.
现在我知道很多事情会破坏5.3.对于我使用的大部分内容,我似乎没有这个问题.然而,我一直遇到的一个主要问题是我使用了启动php代码的简写方法:
<?而不是<?php.这在PHP 5.2中从来都不是问题.因为它同时接受了.
但是,在dotdeb的PHP 5.3.5.0中,似乎需要php.我经历了全部<?替换<?php,然后全部<?phpphp替换<?php.这似乎已经解决了我对我的代码所遇到的任何问题,但是第三方代码中的快捷方式如<?=不起作用<?php=.我也不希望在我从这里使用的每个php文件上运行此替换.
我怎样才能获得php 5.3.允许快捷方式<?和<?=被接受而不需要php?
假设你想要5个线程同时处理数据.还假设您有89个要处理的任务.
你知道89/5 = 17,其余的是4.分离任务的最好方法是让4个(余数)线程每个处理18(17 + 1)个任务,然后有1个(#个线程 - 其余)线程处理17.
这将消除余数.只是为了验证:
Thread 1: Tasks 1-18 (18 tasks)
Thread 2: Tasks 19-36 (18 tasks)
Thread 3: Tasks 37-54 (18 tasks)
Thread 4: Tasks 55-72 (18 tasks)
Thread 5: Tasks 73-89 (17 tasks)
Run Code Online (Sandbox Code Playgroud)
完成了总共89项任务.
我需要一种方法来获得每个线程的开始和结束范围数学/可编程性; 以下内容应该打印出我上面列出的确切内容:
$NumTasks = 89
$NumThreads = 5
$Remainder = $NumTasks % $NumThreads
$DefaultNumTasksAssigned = floor($NumTasks / $NumThreads)
For $i = 1 To $NumThreads
if $i <= $Remainder Then
$NumTasksAssigned = $DefaultNumTasksAssigned + 1
else
$NumTasksAssigned = $DefaultNumTasksAssigned
endif
$Start …Run Code Online (Sandbox Code Playgroud) language-agnostic math programming-languages multiprocessing
为什么使用is_it_valid_color("yellow")工作和输出FOUND IT但使用is_it_valid_color(x.c_str());不起作用?
我有一种感觉它与null终止字符串有关.控制台中的输出看起来相同:
color: 'yellow'
FOUND IT
color: 'yellow'
Run Code Online (Sandbox Code Playgroud)
.
const char *color_names[] = {"yellow", "green", "red"};
const int color_names_SIZE = 3;
void is_it_valid_color(const char* color) {
cout << "color: '" << color << "'" << endl;
for(int i = 0; i < color_names_SIZE; ++i) {
if(color == *(color_names + i)) {
cout << "FOUND IT" << endl;
break;
}
}
}
is_it_valid_color("yellow");
string x = "yellow";
is_it_valid_color(x.c_str());
Run Code Online (Sandbox Code Playgroud)